Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 6049|Válasz: 4

[Forrás] ASP.NET Core (tizenkilenc) a BackgroundService-t használja háttérfeladatok futtatására

[Linket másol]
Közzétéve: 2023-5-20 22:51:51 | | | |
Követelmények: A projektben egy statikus naplósor van definiálva, és minden kérés üzeneteket tehet a sorba, és szükségünk van a weboldalnak, hogy háttérfeladatot nyisson fel az üzenetek feldolgozásához ebben a sorban.

Szemle:

Egy szolgáltatás, amely a .NET Core alapú Linux rendszeren
https://www.itsvse.com/thread-9447-1-1.html
IHostedService interfész

Az IHostedService interfésze két módszert határoz meg a hosztolt objektumok számára:

StartAsync(CancellationToken): A háttérfeladatok indításához használt logika.
StopAsync(CancellationToken): Akkor aktiválódik, amikor a gazda normál leállítást hajt végre, amely tartalmazza a háttérfeladatok befejezésére szolgáló logikát.

Háttér Szolgáltatási alaposztály

A BackgroundService az alaposztály, amelyet a hosszú ideig futó IHostedService megvalósításához használnak, a forráskód címe:A hiperlink bejelentkezés látható.



Hívd a ExecuteAsync (CancellationToken) parancsot a háttérszolgáltatás futtatására. A megvalósítás egy Feladatot ad vissza, amely a háttérszolgáltatás teljes élettartamát képviseli. Más szolgáltatások nem indulnak, amíg az ExecuteAsync aszinkronná nem válik, például az await hívásával. Kerüld el a hosszú blokkoló inicializációs feladatokat az ExecuteAsync-ben. StopAsync (CancellationToken) várja, amíg az ExecuteAsync befejeződik.

Háttérfeladatot valósítunk meg, hogy a naplót egy ciklusban kinyomtatjuk, a kód a következő:

Regisztráljon a szolgáltatási szolgáltatásban a következő kóddal:

A regisztrációs mód egy-egy egyes, ahogy az alábbi ábrán látható:



Kezdjük a projektet a következő kimenetelekkel:



Használj egy scoped szolgáltatást egy háttérfeladatban

A BackgroundService keretében történő scoped szolgáltatás használatához hozz létre egy scope-t. Alapértelmezés szerint nem hoznak létre scope-okat menedzselt szolgáltatásokhoz. Ha közvetlenül egy konstruktorral szülekezetes objektumot injektálsz, a hiba a következő:

Kezeletlen kivétel. System.AggregateException: Néhány szolgáltatás nem lehet felépíteni (hiba a 'ServiceType: Microsoft.Extensions.Hosting.IHostedService szolgáltatás-leírás validálásakor' Élettartam: Singleton ImplementációTípus: WebApplication2.Worker.TestServiceHostedService': Nem tudja használni a 'WebApplication2.Worker.User' scope-szolgáltatást az Singletonból Microsoft.Extensions.Hosting.IHostedService'.)
A kódot a következőképpen kell módosítanunk:

Utalás:A hiperlink bejelentkezés látható.

(Vége)





Előző:OData – OData vs GraphQL
Következő:LiteDB beágyazott adatbázis .NET oktató
 Háziúr| Közzétéve: 2023-5-20 22:52:45 |


szemle

ASP.NET Core (18) Testreszabni egy egyszerű OutputCache kimeneti gyorsítótárt
https://www.itsvse.com/thread-10583-1-1.html

ASP.NET Core (17) integrálja a MiniProfile alkalmazás teljesítményelemzését
https://www.itsvse.com/thread-10571-1-1.html

ASP.NET Core (16) Dinamikus regisztrációs szolgáltatások beépítésétől függően
https://www.itsvse.com/thread-10560-1-1.html

ASP.NET Core (XV) a HttpClient-t használja HTTP kérések küldésére
https://www.itsvse.com/thread-10311-1-1.html

ASP.NET Core (tizennégy) a SkiaSharp kép captcha-ján alapul
https://www.itsvse.com/thread-10287-1-1.html

ASP.NET Core (XIII) hogy megállapítsam, Ajax kérés-e vagy sem
https://www.itsvse.com/thread-10284-1-1.html

ASP.NET Core (tizenkettő) front-end JS, CSS csomagolás és tömörítés
https://www.itsvse.com/thread-10282-1-1.html

ASP.NET Core (XI) végállomás közlekedőt ad hozzá az összes DI szolgáltatás megjelenítéséhez
https://www.itsvse.com/thread-10269-1-1.html

ASP.NET Részletes magyarázata a konfigurációs prioritásokról a Core(10)-ben.
https://www.itsvse.com/thread-10265-1-1.html

ASP.NET Részletes magyarázata a Core (9) közmű middleware-jéről.
https://www.itsvse.com/thread-9647-1-1.html

ASP.NET Részletes magyarázat a Core Middleware-ről
https://www.itsvse.com/thread-8126-1-1.html

ASP.NET a Swagger UI alapértelmezett paramétereinek gödöre a Core(8)-ban.
https://www.itsvse.com/thread-9640-1-1.html

ASP.NET Core (7) A keretrendszer forráskódjának mélyreható elemzése
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI manuálisan megszerzi az objektumok befecskendezésének módszerét
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (öt) CAP elosztott tranzakciókon alapul
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4) szűrő egységes ModelState modellvalidáció
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Dinamikusan hozz létre példányokat az ActivatorUtilities használatával
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Újraindítsa az alkalmazást kód szerint
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) Redis gyorsítótárat használ
https://www.itsvse.com/thread-9393-1-1.html
 Háziúr| Közzétéve: 2023-5-29 20:29:45 |
Az IServiceProvider-t IServiceScopeFactory-re cserélheted, és a CreateScope létrehozásakor nincs különbség a kettő között.
 Háziúr| Közzétéve: 2023-8-2 19:13:00 |
Egy új időzítőt használnak .NET 6-ban, PeriodicTimer-t
https://www.itsvse.com/thread-10637-1-1.html
 Háziúr| Közzétéve: 2023-8-13 20:13:37 |
A StartAsync korlátozónak kell lennieRövid távú küldetések, mert a hóterhely szolgáltatásSorrendben futáscélMás szolgáltatások nem indulnak, amíg a StartAsync teljesen be nem futA hosszú távú feladatokat ExecuteAsync rendszerbe kell helyezni.

Utalás:A hiperlink bejelentkezés látható.

Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com