Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 6049|Svar: 4

[Kilde] ASP.NET Core (nitten) bruger BackgroundService til at køre baggrundsopgaver

[Kopier link]
Opslået den 20-5-2023 22:51:51 | | | |
Krav: En statisk logkø er defineret i projektet, og hver anmodning kan lægge beskeder i køen, og vi har brug for, at hjemmesiden åbner en baggrundsopgave til at behandle beskederne i denne kø.

Anmeldelse:

En tjeneste baseret på .NET Core på Linux
https://www.itsvse.com/thread-9447-1-1.html
IHostedService-grænseflade

IHostedService-grænsefladen definerer to metoder for hostede objekter:

StartAsync(CancellationToken): Logikken, der bruges til at starte baggrundsopgaver.
StopAsync(CancellationToken): Udløses, når værten udfører en normal nedlukning, og indeholder logikken til at afslutte baggrundsopgaver.

BaggrundsService-baseklasse

BackgroundService er basisklassen, der bruges til at implementere langvarig IHostedService, kildekodeadressen:Hyperlink-login er synlig.



Kald ExecuteAsync(CancellationToken) for at køre baggrundstjenesten. Implementeringen returnerer en opgave, der repræsenterer hele baggrundstjenestens levetid. Ingen andre tjenester startes, før ExecuteAsync bliver asynkron, for eksempel ved at kalde await. Undgå at udføre lange blokeringsinitialiseringsopgaver i ExecuteAsync. StopAsync(CancellationToken) venter på, at ExecuteAsync bliver færdig.

Vi implementerer en baggrundsopgave til at printe loggen i en løkke, koden er som følger:

Registrer dig i servicetjenesten med følgende kode:

Registreringstilstanden er en singleton, som vist i figuren nedenfor:



Start projektet med resultatet som følger:



Brug en scoped service i en baggrundsopgave

For at bruge en scoped service i BackgroundService, opret et scope. Som standard oprettes der ingen scopes for managed services. Hvis du bruger en konstruktør direkte til at injicere et scoped objekt, er fejlen som følger:

Ubehandlet undtagelse. System.AggregateException: Nogle services kan ikke konstrueres (Fejl under validering af servicebeskrivelsen 'ServiceType: Microsoft.Extensions.Hosting.IHostedService Levetid: Singleton ImplementeringType: WebApplication2.Worker.TestServiceHostedService': Kan ikke forbruge scoped service 'WebApplication2.Worker.User' fra singleton ' Microsoft.Extensions.Hosting.IHostedService'.)
Vi skal ændre koden som følger:

Henvisning:Hyperlink-login er synlig.

(Slut)





Tidligere:OData – OData vs GraphQL
Næste:LiteDB Indlejret database til .NET vejledning
 Udlejer| Opslået den 20-5-2023 kl. 22:52:45 |


anmeldelse

ASP.NET Core (18) Tilpas en simpel OutputCache outputcache
https://www.itsvse.com/thread-10583-1-1.html

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

ASP.NET Core (16) Afhængig af indsprøjtning af dynamiske registreringstjenester
https://www.itsvse.com/thread-10560-1-1.html

ASP.NET Core (XV) bruger HttpClient til at sende HTTP-forespørgsler
https://www.itsvse.com/thread-10311-1-1.html

ASP.NET Core (fjorten) er baseret på SkiaSharp-billedcaptchaen
https://www.itsvse.com/thread-10287-1-1.html

ASP.NET Core (XIII) for at afgøre, om det er en Ajax-anmodning eller ej
https://www.itsvse.com/thread-10284-1-1.html

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

ASP.NET Core (XI) endpoint-ruten tilføjer middleware til at vise alle DI-tjenester
https://www.itsvse.com/thread-10269-1-1.html

ASP.NET Detaljeret forklaring af konfigurationsprioriteter i Core(10).
https://www.itsvse.com/thread-10265-1-1.html

ASP.NET Detaljeret forklaring af Middleware-middleware i Core (9).
https://www.itsvse.com/thread-9647-1-1.html

ASP.NET Detaljeret forklaring af Core Middleware
https://www.itsvse.com/thread-8126-1-1.html

ASP.NET grube med standardparametrene i Swagger-brugerfladen i Core(8).
https://www.itsvse.com/thread-9640-1-1.html

ASP.NET Core (7) Dybdegående analyse af frameworkets kildekode
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI henter manuelt metoden til at injicere objekter
https://www.itsvse.com/thread-9595-1-1.html

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

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

ASP.NET Core (iii) Opret dynamisk instanser ved hjælp af ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Genstart applikationen ved at kode
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) bruger Redis-caching
https://www.itsvse.com/thread-9393-1-1.html
 Udlejer| Opslået den 29-5-2023 kl. 20:29:45 |
Du kan erstatte IServiceProvider med IServiceScopeFactory, og der er ingen forskel mellem de to, når du opretter CreateScope.
 Udlejer| Opslået den 2023-8-2 kl. 19:13:00 |
En ny timer i .NET 6, PeriodicTimer, bruges
https://www.itsvse.com/thread-10637-1-1.html
 Udlejer| Opslået den 13-8-2023 kl. 20:13:37 |
StartAsync bør begrænses tilKortvarige missioner, fordi hostingtjenesten erKør i rækkefølgemålIngen andre tjenester startes, før StartAsync kører fuldt udLangsigtede opgaver bør placeres i ExecuteAsync

Henvisning:Hyperlink-login er synlig.

Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com