Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 6049|Svar: 4

[Källa] ASP.NET Core (nitton) använder BackgroundService för att köra bakgrundsuppgifter

[Kopiera länk]
Publicerad den 2023-5-20 22:51:51 | | | |
Krav: En statisk loggkö definieras i projektet, och varje förfrågan kan lägga meddelanden i kön, och vi behöver att webbplatsen öppnar en bakgrundsuppgift för att bearbeta meddelandena i denna kö.

Recension:

En tjänst baserad på .NET Core på Linux
https://www.itsvse.com/thread-9447-1-1.html
IHostedService-gränssnittet

IHostedService-gränssnittet definierar två metoder för hostade objekt:

StartAsync(CancellationToken): Logiken som används för att starta bakgrundsuppgifter.
StopAsync(CancellationToken): Utlöses när värden utför en normal avstängning, innehållande logiken för att avsluta bakgrundsuppgifter.

Bakgrund Tjänstebasklass

BackgroundService är basklassen som används för att implementera långvarig IHostedService, källkodsadressen:Inloggningen med hyperlänken är synlig.



Anropa ExecuteAsync (CancellationToken) för att köra bakgrundstjänsten. Implementeringen returnerar en Task som representerar hela bakgrundstjänstens livslängd. Inga andra tjänster startas förrän ExecuteAsync blir asynkron, till exempel genom att anropa await. Undvik att utföra långa blockeringsinitieringsuppgifter i ExecuteAsync. StopAsync(CancellationToken) väntar på att ExecuteAsync ska bli klar.

Vi implementerar en bakgrundsuppgift för att skriva ut loggen i en loop, koden är följande:

Registrera dig i tjänsttjänsten med följande kod:

Registreringsläget är en singleton, som visas i figuren nedan:



Starta projektet med resultatet enligt följande:



Använd en scoped tjänst i en bakgrundsuppgift

För att använda en scoped tjänst i BackgroundService, skapa en scope. Som standard skapas inga scopes för hanterade tjänster. Om du använder en konstruktör direkt för att injicera ett scoped objekt är felet följande:

Undantag för ohanterad användning. System.AggregateException: Vissa tjänster kan inte konstrueras (Fel vid validering av tjänstebeskrivaren 'ServiceType: Microsoft.Extensions.Hosting.IHostedService) Livstid: Singleton-implementationTyp: WebApplication2.Worker.TestServiceHostedService': Kan inte använda den begränsade tjänsten 'WebApplication2.Worker.User' från singleton ' Microsoft.Extensions.Hosting.IHostedService'.)
Vi behöver ändra koden enligt följande:

Hänvisning:Inloggningen med hyperlänken är synlig.

(Slut)





Föregående:OData – OData vs GraphQL
Nästa:LiteDB Embedded Database for .NET-handledning
 Hyresvärd| Publicerad den 2023-5-20 22:52:45 |


recension

ASP.NET Core (18) Anpassa en enkel OutputCache-utdatacache
https://www.itsvse.com/thread-10583-1-1.html

ASP.NET Core (17) integrerar MiniProfile-applikationsprestandaanalys
https://www.itsvse.com/thread-10571-1-1.html

ASP.NET Core (16) Beroende av injektion av dynamiska registreringstjänster
https://www.itsvse.com/thread-10560-1-1.html

ASP.NET Core (XV) använder HttpClient för att skicka HTTP-förfrågningar
https://www.itsvse.com/thread-10311-1-1.html

ASP.NET Core (fjorton) är baserad på SkiaSharp-bildcaptchan
https://www.itsvse.com/thread-10287-1-1.html

ASP.NET Core (XIII) för att avgöra om det är en Ajax-förfrågan eller inte
https://www.itsvse.com/thread-10284-1-1.html

ASP.NET Core (tolv) front-end JS, CSS-paketering och komprimering
https://www.itsvse.com/thread-10282-1-1.html

ASP.NET Core (XI) endpoint-rutten lägger till middleware för att visa alla DI-tjänster
https://www.itsvse.com/thread-10269-1-1.html

ASP.NET Detaljerad förklaring av konfigurationsprioriteringar i Core(10).
https://www.itsvse.com/thread-10265-1-1.html

ASP.NET Detaljerad förklaring av Middleware-middleware i Core (9).
https://www.itsvse.com/thread-9647-1-1.html

ASP.NET Detaljerad förklaring av Core Middleware
https://www.itsvse.com/thread-8126-1-1.html

ASP.NET gropen med standardparametrarna i Swagger UI i Core(8).
https://www.itsvse.com/thread-9640-1-1.html

ASP.NET Core (7) Djupgående analys av ramverkets källkod
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI hämtar manuellt metoden för att injicera objekt
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (fem) baseras på CAP-distribuerade transaktioner
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4)-filter enhetlig ModelState-modellvalidering
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Skapa instanser dynamiskt med hjälp av ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Starta om applikationen via kod
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) använder Redis-cachelagring
https://www.itsvse.com/thread-9393-1-1.html
 Hyresvärd| Publicerad 2023-5-29 20:29:45 |
Du kan ersätta IServiceProvider med IServiceScopeFactory, och det finns ingen skillnad mellan de två när du skapar CreateScope.
 Hyresvärd| Publicerad 2023-8-2 19:13:00 |
En ny timer i .NET 6, PeriodicTimer, används
https://www.itsvse.com/thread-10637-1-1.html
 Hyresvärd| Publicerad den 2023-8-13 20:13:37 |
StartAsync bör begränsas tillKorttidsuppdrag, eftersom värdtjänsten ärKör i ordningmålInga andra tjänster startas förrän StartAsync körs heltLångsiktiga uppgifter bör placeras i ExecuteAsync

Hänvisning:Inloggningen med hyperlänken är synlig.

Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com