Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 6049|Отговор: 4

[Източник] ASP.NET Core (деветнадесет) използва BackgroundService за изпълнение на фонови задачи

[Копирай линк]
Публикувано на 2023-5-20 22:51:51 | | | |
Изисквания: Статична лог опашка е дефинирана в проекта и всяка заявка може да поставя съобщения в нея, а уебсайтът трябва да отвори фонова задача, за да обработи съобщенията в тази опашка.

Преглед:

Услуга, базирана на .NET Core в Linux
https://www.itsvse.com/thread-9447-1-1.html
IHostedService интерфейс

Интерфейсът IHostedService дефинира два метода за хоствани обекти:

StartAsync(CancellationToken): Логиката, използвана за стартиране на фонови задачи.
StopAsync(CancellationToken): Задейства се, когато хостът извърши нормално изключване, съдържащо логиката за край на фоновите задачи.

ПредисторияБазов клас на служба

BackgroundService е базовият клас, използван за реализиране на дългогодишен IHostedService, адресът на изходния код:Входът към хиперлинк е видим.



Извикай ExecuteAsync(CancellationToken), за да стартираш фоновата услуга. Имплементацията връща задача, която представлява целия живот на фоновата услуга. Други услуги не се стартират, докато ExecuteAsync не стане асинхронен, например чрез извикване на await. Избягвайте да извършвате дълги задачи за блокиране на инициализация в ExecuteAsync. StopAsync(CancellationToken) чака ExecuteAsync да завърши.

Реализираме фонова задача за отпечатване на дневника в цикъл, кодът е следният:

Регистрирайте се в услугата със следния код:

Режимът на регистрация е singleton, както е показано на фигурата по-долу:



Започнете проекта със следния изход:



Използвайте обхватна услуга във фонова задача

За да използвате обхватна услуга в BackgroundService, създайте обхват. По подразбиране не се създават обхвати за управлявани услуги. Ако използвате конструктор директно за инжектиране на обект с обхват, грешката е следната:

Необработено изключение. System.AggregateException: Някои услуги не могат да бъдат конструирани (Грешка при валидиране на дескриптора на услугата 'ServiceType: Microsoft.Extensions.Hosting.IHostedService Живот: Singleton Implementation Тип: WebApplication2.Worker.TestServiceHostedService': Не може да се използва обхватна услуга 'WebApplication2.Worker.User' от singleton ' Microsoft.Extensions.Hosting.IHostedService'.)
Трябва да променим кода по следния начин:

Препратка:Входът към хиперлинк е видим.

(Край)





Предишен:OData – OData срещу GraphQL
Следващ:Урок за вградена база данни за .NET за LiteDB
 Хазяин| Публикувано на 2023-5-20 22:52:45 |


преглед

ASP.NET Core (18) Персонализиране на прост OutputCache изходен кеш
https://www.itsvse.com/thread-10583-1-1.html

ASP.NET Core (17) интегрира анализ на производителността на приложенията MiniProfile
https://www.itsvse.com/thread-10571-1-1.html

ASP.NET Ядро (16) Зависи от инжектиране на динамични регистрационни услуги
https://www.itsvse.com/thread-10560-1-1.html

ASP.NET Core (XV) използва HttpClient за изпращане на HTTP заявки
https://www.itsvse.com/thread-10311-1-1.html

ASP.NET Core (четиринадесет) е базиран на капча за изображения на SkiaSharp
https://www.itsvse.com/thread-10287-1-1.html

ASP.NET Core (XIII), за да определи дали е заявка на Ajax или не
https://www.itsvse.com/thread-10284-1-1.html

ASP.NET Core (дванадесет) фронтенд JS, CSS пакетиране и компресия
https://www.itsvse.com/thread-10282-1-1.html

ASP.NET Маршрутът на крайната точка на Core (XI) добавя междинен софтуер за показване на всички DI услуги
https://www.itsvse.com/thread-10269-1-1.html

ASP.NET Подробно обяснение на приоритетите на конфигурацията в Core(10).
https://www.itsvse.com/thread-10265-1-1.html

ASP.NET Подробно обяснение на междинния софтуер на Core (9).
https://www.itsvse.com/thread-9647-1-1.html

ASP.NET Подробно обяснение на основния междинен софтуер
https://www.itsvse.com/thread-8126-1-1.html

ASP.NET яма с стандартните параметри на Swagger UI в Core(8).
https://www.itsvse.com/thread-9640-1-1.html

ASP.NET Ядро (7) Задълбочен анализ на изходния код на рамката
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI ръчно получава метода за инжектиране на обекти
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (пет) се базира на разпределени транзакции с CAP
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Филтър Core(4) унифицирана валидация на модела ModelState
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Ядро (iii) Динамично създаване на инстанции чрез ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Ядро (2) Рестартиране на приложението чрез код
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) използва кеширане на Redis
https://www.itsvse.com/thread-9393-1-1.html
 Хазяин| Публикувано на 29.05.2023 20:29:45 |
Можете да замените IServiceProvider с IServiceScopeFactory и няма разлика между двата при създаването на CreateScope.
 Хазяин| Публикувано на 2023-8-2 19:13:00 |
Използва се нов таймер в .NET 6, PeriodicTimer
https://www.itsvse.com/thread-10637-1-1.html
 Хазяин| Публикувано на 2023-8-13 20:13:37 |
StartAsync трябва да бъде ограничен доКраткосрочни мисии, защото хостинг услугата еБягай по редцелНяма други услуги, докато StartAsync не започне да работи напълноДългосрочните задачи трябва да се поставят в ExecuteAsync

Препратка:Входът към хиперлинк е видим.

Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com