Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 6049|Odpověď: 4

[Zdroj] ASP.NET Core (devatenáct) používá BackgroundService k provádění úloh na pozadí

[Kopírovat odkaz]
Zveřejněno 2023-5-20 22:51:51 | | | |
Požadavky: V projektu je definována statická logovací fronta a každý požadavek může do fronty vložit zprávy, přičemž webstránka musí otevřít pozadí pro zpracování zpráv v této frontě.

Přezkoumání:

Služba založená na .NET Core na Linuxu
https://www.itsvse.com/thread-9447-1-1.html
Rozhraní IHostedService

Rozhraní IHostedService definuje dvě metody pro hostované objekty:

StartAsync(CancellationToken): Logika používaná k zahájení úkolů na pozadí.
StopAsync(CancellationToken): Spouští se, když hostitel provede běžné vypnutí, obsahující logiku pro ukončení úloh na pozadí.

Základní třída BackgroundService

BackgroundService je základní třída používaná k implementaci dlouhotrvající IHostedService, tedy adresy zdrojového kódu:Přihlášení k hypertextovému odkazu je viditelné.



Zavolejte ExecuteAsync (CancellationToken) pro spuštění služby na pozadí. Implementace vrací úkol, který reprezentuje celou životnost služby na pozadí. Žádné další služby nejsou spuštěny, dokud ExecuteAsync nepřejde na asynchronní, například voláním await. Vyhněte se provádění dlouhých blokovacích inicializačních úloh v ExecuteAsync. StopAsync(CancellationToken) čeká na dokončení ExecuteAsync.

Implementujeme úkol na pozadí, který vytiskne log v smyčce, kód je následující:

Zaregistrujte se ve službě služby s následujícím kódem:

Registrační režim je singleton, jak je znázorněno na obrázku níže:



Začněte projekt s výstupem následujícím způsobem:



Použijte scoped service v pozadí úkolu

Pro použití scoped služby v BackgroundService vytvořte scope. Ve výchozím nastavení nejsou pro spravované služby vytvářeny žádné rozsahy. Pokud použijete konstruktor přímo k injekci objektu s rozsahem, chyba je následující:

Neřešená výjimka. System.AggregateException: Některé služby nelze vytvořit (Chyba při ověřování popisu služby 'ServiceType: Microsoft.Extensions.Hosting.IHostedService) Životnost: Singleton Implementační typ: WebApplication2.Worker.TestServiceHostedService': Nelze využít scoped service 'WebApplication2.Worker.User' z singleton ' Microsoft.Extensions.Hosting.IHostedService'.)
Musíme kód upravit následovně:

Odkaz:Přihlášení k hypertextovému odkazu je viditelné.

(Konec)





Předchozí:OData – OData vs GraphQL
Další:LiteDB Embedded Database pro .NET tutoriál
 Pronajímatel| Zveřejněno 2023-5-2023 22:52:45 |


přezkoumání

ASP.NET Core (18) Přizpůsobit jednoduchou výstupní cache OutputCache
https://www.itsvse.com/thread-10583-1-1.html

ASP.NET Core (17) integruje analýzu výkonu aplikací MiniProfile
https://www.itsvse.com/thread-10571-1-1.html

ASP.NET Jádro (16) Závislé na injekci dynamických registračních služeb
https://www.itsvse.com/thread-10560-1-1.html

ASP.NET Core (XV) používá HttpClient k odesílání HTTP požadavků
https://www.itsvse.com/thread-10311-1-1.html

ASP.NET Core (čtrnáct) je založen na image captcha ze SkiaSharp
https://www.itsvse.com/thread-10287-1-1.html

ASP.NET Core (XIII), abyste zjistili, zda jde o požadavek Ajaxu nebo ne
https://www.itsvse.com/thread-10284-1-1.html

ASP.NET Jádro (dvanáct) front-end JS, CSS balíčkování a komprese
https://www.itsvse.com/thread-10282-1-1.html

ASP.NET Core (XI) koncová trasa přidává middleware pro zobrazení všech DI služeb
https://www.itsvse.com/thread-10269-1-1.html

ASP.NET Podrobné vysvětlení priorit konfigurace v Core(10).
https://www.itsvse.com/thread-10265-1-1.html

ASP.NET Podrobné vysvětlení middleware middleware v Core (9).
https://www.itsvse.com/thread-9647-1-1.html

ASP.NET Podrobné vysvětlení jádrového middleware
https://www.itsvse.com/thread-8126-1-1.html

ASP.NET propasti výchozích parametrů Swagger UI v Core(8).
https://www.itsvse.com/thread-9640-1-1.html

ASP.NET Jádro (7) Hloubková analýza zdrojového kódu frameworku
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI ručně získává metodu vstřikování objektů
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (pět) je založen na distribuovaných transakcích podle CAP
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Filtr Core(4) sjednocený validace modelů ModelState
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Jádro (iii) Dynamicky vytvářet instance pomocí ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Jádro (2) Restartovat aplikaci pomocí kódu
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) používá Redis caching
https://www.itsvse.com/thread-9393-1-1.html
 Pronajímatel| Zveřejněno 29. 5. 2023 20:29:45 |
Můžete IServiceProvider nahradit IServiceScopeFactory a při vytváření CreateScope mezi nimi není žádný rozdíl.
 Pronajímatel| Zveřejněno 2023-8-2 19:13:00 |
Používá se nový časovač v .NET 6, PeriodicTimer,
https://www.itsvse.com/thread-10637-1-1.html
 Pronajímatel| Zveřejněno 13. 8. 2023 20:13:37 |
StartAsync by měl být omezen naKrátkodobé mise, protože hostovací služba jeBěh v pořadícílŽádné další služby se nespouštějí, dokud StartAsync neběží úplněDlouhodobé úkoly by měly být umístěny do ExecuteAsync

Odkaz:Přihlášení k hypertextovému odkazu je viditelné.

Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com