Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 6049|Odgovoriti: 4

[Vir] ASP.NET Core (devetnajst) uporablja BackgroundService za izvajanje ozadja

[Kopiraj povezavo]
Objavljeno 2023-5-20 22:51:51 | | | |
Zahteve: V projektu je definirana statična čakalna vrsta dnevnikov, pri čemer lahko vsaka zahteva vključi sporočila v vrsto, spletna stran pa mora odpreti ozadno nalogo za obdelavo sporočil v tej vrsti.

Pregled:

Storitev, ki temelji na .NET Core na Linuxu
https://www.itsvse.com/thread-9447-1-1.html
Vmesnik IHostedService

Vmesnik IHostedService definira dve metodi za gostovane objekte:

StartAsync(CancellationToken): Logika, ki se uporablja za začetek ozadnih nalog.
StopAsync(CancellationToken): Sproži se, ko gostitelj izvede običajen izklop, ki vsebuje logiko za zaključek ozadnih opravil.

Osnovni razred ozadja Storitve

BackgroundService je osnovni razred, ki se uporablja za implementacijo dolgoletnega IHostedService, naslova izvorne kode:Prijava do hiperpovezave je vidna.



Pokliči ExecuteAsync (CancellationToken) za zagon storitve v ozadju. Implementacija vrne nalogo, ki predstavlja celotno življenjsko dobo storitve v ozadju. Nobenih drugih storitev se ne začne, dokler ExecuteAsync ne postane asinhron, na primer z klicem await. Izogibajte se izvajanju dolgih inicializacijskih nalog blokiranja v ExecuteAsync. StopAsync(CancellationToken) čaka, da se ExecuteAsync zaključi.

Implementiramo ozadno nalogo za tiskanje dnevnika v zanki, koda je naslednja:

Registrirajte se v storitveni storitvi z naslednjo kodo:

Način registracije je enojni, kot je prikazano na spodnji sliki:



Projekt začnite z izhodom takole:



Uporabite scoped storitev v ozadju naloge

Za uporabo scoped storitve v BackgroundService ustvarite scope. Privzeto za upravljane storitve niso ustvarjeni obsegi. Če uporabite konstruktor neposredno za vbrizg objekta s scope, je napaka naslednja:

Neobdelana izjema. System.AggregateException: Nekaterih storitev ni mogoče sestaviti (Napaka med preverjanjem opisa storitve 'ServiceType: Microsoft.Extensions.Hosting.IHostedService' Življenjska doba: Singleton ImplementacijaTip: WebApplication2.Worker.TestServiceHostedService': Ne more uporabljati scoped storitve 'WebApplication2.Worker.User' iz singleton ' Microsoft.Extensions.Hosting.IHostedService'.)
Kodo moramo spremeniti na naslednji način:

Referenčni:Prijava do hiperpovezave je vidna.

(Konec)





Prejšnji:OData – OData proti GraphQL
Naslednji:LiteDB Embedded Database for .NET vodič
 Najemodajalec| Objavljeno 2023-5-20 22:52:45 |


pregled

ASP.NET Core (18) Prilagodite preprost izhodni predpomnilnik OutputCache
https://www.itsvse.com/thread-10583-1-1.html

ASP.NET Core (17) integrira analizo zmogljivosti aplikacij MiniProfile
https://www.itsvse.com/thread-10571-1-1.html

ASP.NET Jedro (16) Odvisno od vbrizgavanja storitev dinamične registracije
https://www.itsvse.com/thread-10560-1-1.html

ASP.NET Core (XV) uporablja HttpClient za pošiljanje HTTP zahtevkov
https://www.itsvse.com/thread-10311-1-1.html

ASP.NET Core (štirinajst) temelji na SkiaSharp image captcha
https://www.itsvse.com/thread-10287-1-1.html

ASP.NET Core (XIII), da ugotovi, ali gre za Ajaxovo zahtevo ali ne
https://www.itsvse.com/thread-10284-1-1.html

ASP.NET Core (dvanajst) sprednji JS, CSS združevanje in stiskanje
https://www.itsvse.com/thread-10282-1-1.html

ASP.NET Core (XI) končna pot doda vmesno programsko opremo za prikaz vseh DI storitev
https://www.itsvse.com/thread-10269-1-1.html

ASP.NET Podrobna razlaga konfiguracijskih prioritet v Core(10).
https://www.itsvse.com/thread-10265-1-1.html

ASP.NET Podrobna razlaga middleware vmesne programske opreme Core (9).
https://www.itsvse.com/thread-9647-1-1.html

ASP.NET Podrobna razlaga osnovne vmesne programske opreme
https://www.itsvse.com/thread-8126-1-1.html

ASP.NET privzetih parametrov uporabniškega vmesnika Swagger v Core(8).
https://www.itsvse.com/thread-9640-1-1.html

ASP.NET Jedro (7) Poglobljena analiza izvorne kode ogrodja
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI ročno pridobi metodo vbrizgavanja objektov
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (pet) temelji na CAP distribuiranih transakcijah
https://www.itsvse.com/thread-9593-1-1.html

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

ASP.NET Jedro (iii) Dinamično ustvarjanje instanc z uporabo ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Jedro (2) Ponovni zagon aplikacije s kodo
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) uporablja Redis predpomnjenje
https://www.itsvse.com/thread-9393-1-1.html
 Najemodajalec| Objavljeno 29. 5. 2023 ob 20:29:45 |
IServiceProvider lahko zamenjate z IServiceScopeFactory in med njima ni razlike pri ustvarjanju CreateScope.
 Najemodajalec| Objavljeno 2023-8-2 ob 19:13:00 |
Uporablja se nov časovnik v .NET 6, PeriodicTimer
https://www.itsvse.com/thread-10637-1-1.html
 Najemodajalec| Objavljeno 2023-8-13 20:13:37 |
StartAsync naj bo omejen naKratkoročne misije, ker je gostiteljska storitevTeči po vrstnem reduciljNobene druge storitve se ne zaženejo, dokler StartAsync ne deluje popolnomaDolgoročne naloge je treba postaviti v ExecuteAsync

Referenčni:Prijava do hiperpovezave je vidna.

Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com