Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 6049|Atbildi: 4

[Avots] ASP.NET Core (deviņpadsmit) izmanto BackgroundService, lai izpildītu fona uzdevumus

[Kopēt saiti]
Publicēts 2023-5-20 22:51:51 | | | |
Prasības: Projektā ir definēta statiska žurnāla rinda, un katrs pieprasījums var ievietot ziņojumus rindā, un mums ir nepieciešams, lai vietne atvērtu fona uzdevumu, lai apstrādātu ziņojumus šajā rindā.

Pārskats:

Pakalpojums, kura pamatā ir .NET Core operētājsistēmā Linux
https://www.itsvse.com/thread-9447-1-1.html
IHostedService interfeiss

IHostedService interfeiss definē divas metodes viesotiem objektiem:

StartAsync(CancellationToken): loģika, kas tiek izmantota, lai sāktu fona uzdevumus.
StopAsync(CancellationToken): tiek aktivizēts, kad resursdators veic normālu izslēgšanu, kas satur loģiku, lai izbeigtu fona uzdevumus.

BackgroundService pamatklase

BackgroundService ir bāzes klase, ko izmanto, lai ieviestu ilgstošu IHostedService, avota koda adresi:Hipersaites pieteikšanās ir redzama.



Izsauciet ExecuteAsync(CancellationToken), lai palaistu fona pakalpojumu. Implementācija atgriež uzdevumu, kas atspoguļo visu fona pakalpojuma kalpošanas laiku. Citi pakalpojumi netiek startēti, kamēr ExecuteAsync nekļūst asinhrons, piemēram, zvanot gaidīt. Izvairieties no ilgstošas bloķēšanas inicializācijas uzdevumu veikšanas programmā ExecuteAsync. StopAsync(CancellationToken) gaida, līdz ExecuteAsync tiks pabeigts.

Mēs īstenojam fona uzdevumu, lai izdrukātu žurnālu cilpā, kods ir šāds:

Reģistrējieties servisa pakalpojumā ar šādu kodu:

Reģistrācijas režīms ir singleton, kā parādīts zemāk redzamajā attēlā:



Sāciet projektu ar izvadi šādi:



Tvēruma pakalpojuma izmantošana fona uzdevumā

Lai BackgroundService izmantotu tvēruma pakalpojumu, izveidojiet tvērumu. Pēc noklusējuma pārvaldītajiem pakalpojumiem netiek izveidoti tvērumi. Ja izmantojat konstruktoru tieši, lai injicētu tvēruma objektu, kļūda ir šāda:

Neapstrādāts izņēmums. System.AggregateException: dažus pakalpojumus nevar izveidot (kļūda, validējot pakalpojuma deskriptoru 'ServiceType: Microsoft.Extensions.Hosting.IHostedService Lifetime: Singleton ImplementationType: WebApplication2.Worker.TestServiceHostedService': Nevar patērēt tvēruma pakalpojumu 'WebApplication2.Worker.User' no singleton ' Microsoft.Extensions.Hosting.IHostedService'.)
Mums ir jāmaina kods šādi:

Atsauce:Hipersaites pieteikšanās ir redzama.

(Beigas)





Iepriekšējo:OData - OData vs GraphQL
Nākamo:LiteDB iegultā datu bāze .NET apmācība
 Saimnieks| Publicēts 2023-5-20 22:52:45 |


Pārskats

ASP.NET kodols (18) Vienkāršas OutputCache izvades kešatmiņas pielāgošana
https://www.itsvse.com/thread-10583-1-1.html

ASP.NET Core (17) integrē MiniProfile lietojumprogrammu veiktspējas analīzi
https://www.itsvse.com/thread-10571-1-1.html

ASP.NET Core (16) Atkarīgs no dinamiskās reģistrācijas pakalpojumu ievadīšanas
https://www.itsvse.com/thread-10560-1-1.html

ASP.NET Core (XV) izmanto HttpClient, lai nosūtītu HTTP pieprasījumus
https://www.itsvse.com/thread-10311-1-1.html

ASP.NET Core (četrpadsmit) ir balstīts uz SkiaSharp attēlu captcha
https://www.itsvse.com/thread-10287-1-1.html

ASP.NET Core (XIII), lai noteiktu, vai tas ir Ajax pieprasījums vai nē
https://www.itsvse.com/thread-10284-1-1.html

ASP.NET Core (divpadsmit) priekšgala JS, CSS komplektēšana un saspiešana
https://www.itsvse.com/thread-10282-1-1.html

ASP.NET Core (XI) galapunkta maršruts pievieno starpprogrammatūru, lai parādītu visus DI pakalpojumus
https://www.itsvse.com/thread-10269-1-1.html

ASP.NET Detalizēts skaidrojums par konfigurācijas prioritātēm kodolā [10].
https://www.itsvse.com/thread-10265-1-1.html

ASP.NET Detalizēts skaidrojums par Core starpprogrammatūru (9).
https://www.itsvse.com/thread-9647-1-1.html

ASP.NET Detalizēts skaidrojums par pamata starpprogrammatūru
https://www.itsvse.com/thread-8126-1-1.html

ASP.NET Swagger lietotāja interfeisa noklusējuma parametru bedre Core(8).
https://www.itsvse.com/thread-9640-1-1.html

ASP.NET Core (7) Sistēmas pirmkoda padziļināta analīze
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI manuāli iegūst objektu injicēšanas metodi
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (pieci) ir balstīts uz CAP sadalītajiem darījumiem
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4) filtra vienotā ModelState modeļa validācija
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Dinamiski izveidojiet instances, izmantojot ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET kodols (2) Restartējiet lietojumprogrammu pēc koda
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) izmanto Redis kešatmiņu
https://www.itsvse.com/thread-9393-1-1.html
 Saimnieks| Publicēts 2023-5-29 20:29:45 |
IServiceProvider var aizstāt ar IServiceScopeFactory, un, veidojot CreateScope, starp abiem nav atšķirības.
 Saimnieks| Publicēts 2023-8-2 19:13:00 |
Tiek izmantots jauns taimeris .NET 6 PeriodicTimer
https://www.itsvse.com/thread-10637-1-1.html
 Saimnieks| Publicēts 2023-8-13 20:13:37 |
StartAsync ir jāierobežo līdzĪstermiņa komandējumi, jo hostinga pakalpojums irPalaist kārtībāMērķaCiti pakalpojumi netiek startēti, kamēr StartAsync nav pilnībā palaistsIlgtermiņa uzdevumi jāievieto ExecuteAsync

Atsauce:Hipersaites pieteikšanās ir redzama.

Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com