Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 6049|Svare: 4

[Kilde] ASP.NET Core (nitten) bruker BackgroundService for å kjøre bakgrunnsoppgaver

[Kopier lenke]
Publisert 2023-05.20 kl. 22:51:51 | | | |
Krav: En statisk loggkø er definert i prosjektet, og hver forespørsel kan legge meldinger i køen, og vi trenger at nettstedet åpner en bakgrunnsoppgave for å behandle meldingene i denne køen.

Anmeldelse:

En tjeneste basert på .NET Core på Linux
https://www.itsvse.com/thread-9447-1-1.html
IHostedService-grensesnitt

IHostedService-grensesnittet definerer to metoder for hostede objekter:

StartAsync(CancellationToken): Logikken som brukes for å starte bakgrunnsoppgaver.
StopAsync(CancellationToken): Utløses når verten utfører en normal nedstengning, og inneholder logikken for å avslutte bakgrunnsoppgaver.

Bakgrunnstjeneste basisklasse

BackgroundService er basisklassen som brukes til å implementere langvarig IHostedService, kildekodeadressen:Innloggingen med hyperkoblingen er synlig.



Kall ExecuteAsync (CancellationToken) for å kjøre bakgrunnstjenesten. Implementeringen returnerer en oppgave som representerer hele levetiden til bakgrunnstjenesten. Ingen andre tjenester startes før ExecuteAsync blir asynkron, for eksempel ved å kalle await. Unngå å utføre lange blokkerende initialiseringsoppgaver i ExecuteAsync. StopAsync (CancellationToken) venter på at ExecuteAsync skal bli ferdig.

Vi implementerer en bakgrunnsoppgave for å skrive ut loggen i en løkke, koden er som følger:

Registrer deg i tjenestetjenesten med følgende kode:

Registreringsmodusen er en singleton, som vist i figuren nedenfor:



Start prosjektet med resultatet som følger:



Bruk en scoped tjeneste i en bakgrunnsoppgave

For å bruke en scoped tjeneste i BackgroundService, opprett et scope. Som standard opprettes ingen scopes for administrerte tjenester. Hvis du bruker en konstruktør direkte for å injisere et objekt med scope, er feilen som følger:

Unntak for ubehandlet. System.AggregateException: Noen tjenester kan ikke konstrueres (Feil ved validering av tjenestebeskrivelsen 'ServiceType: Microsoft.Extensions.Hosting.IHostedService) Levetid: Singleton ImplementasjonType: WebApplication2.Worker.TestServiceHostedService': Kan ikke konsumere scoped service 'WebApplication2.Worker.User' fra singleton ' Microsoft.Extensions.Hosting.IHostedService'.)
Vi må endre koden som følger:

Referanse:Innloggingen med hyperkoblingen er synlig.

(Slutt)





Foregående:OData – OData vs GraphQL
Neste:LiteDB Embedded Database for .NET-veiledning
 Vert| Publisert 20.05.2023 kl. 22:52:45 |


anmeldelse

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

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

ASP.NET Kjerne (16) Avhengig av tilførsel av dynamiske registreringstjenester
https://www.itsvse.com/thread-10560-1-1.html

ASP.NET Core (XV) bruker HttpClient for å sende HTTP-forespørsler
https://www.itsvse.com/thread-10311-1-1.html

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

ASP.NET Core (XIII) for å avgjøre om det er en Ajax-forespørsel eller ikke
https://www.itsvse.com/thread-10284-1-1.html

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

ASP.NET Core (XI) endepunktruten legger til mellomvare for å vise alle DI-tjenester
https://www.itsvse.com/thread-10269-1-1.html

ASP.NET Detaljert forklaring av konfigurasjonsprioriteringer i Core(10).
https://www.itsvse.com/thread-10265-1-1.html

ASP.NET Detaljert forklaring av mellomvare-mellomvaren i Core (9).
https://www.itsvse.com/thread-9647-1-1.html

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

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

ASP.NET Kjerne (7) Grundig analyse av rammeverkets kildekode
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI henter manuelt metoden for å injisere objekter
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (fem) er basert på CAP-distribuerte transaksjoner
https://www.itsvse.com/thread-9593-1-1.html

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

ASP.NET Core (iii) Opprett instanser dynamisk ved hjelp av ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Start applikasjonen på nytt via kode
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) bruker Redis-caching
https://www.itsvse.com/thread-9393-1-1.html
 Vert| Publisert 29.05.2023 kl. 20:29:45 |
Du kan erstatte IServiceProvider med IServiceScopeFactory, og det er ingen forskjell mellom de to når du oppretter CreateScope.
 Vert| Publisert 2023-8-2 kl. 19:13:00 |
En ny timer i .NET 6, PeriodicTimer, brukes
https://www.itsvse.com/thread-10637-1-1.html
 Vert| Publisert 13.08.2023 kl. 20:13:37 |
StartAsync bør begrenses tilKorttidsoppdrag, fordi hostingtjenesten erKjør i rekkefølgemålIngen andre tjenester startes før StartAsync kjører heltLangsiktige oppgaver bør plasseres i ExecuteAsync

Referanse:Innloggingen med hyperkoblingen er synlig.

Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com