Координация фоновых задач с помощью Quartz.NET¶
Иногда фоновые задачи необходимо обновлять по расписанию, которое может быть, зачастую, довольно сложным. Можно, конечно, написать планировщика самостоятельно. А можно воспользоваться готовыми библиотеками. Две наиболее известные из них — это Hangfire и Quartz.NET. Quartz.NET, по сути, предлагает расширенную версию функциональности класса BackgroundService1. Помимо обширных возможностей для планирования, библиотека поддерживает работу в кластерном окружении, распределяя задания между репликами.
Примечание
Quartz.NET основана на библиотеке для Java под названием Quartz Scheduler.
Quartz.NET основана на четырёх концепциях:
- задания — фоновые задачи с необходимой логикой;
- триггеры — определяют, когда задание будет запускаться по расписанию, например “каждые пять минут”, или “каждый второй вторник”. У задания может быть несколько триггеров;
- фабрика заданий — отвечает за создание экземпляров заданий. Интегрирована с контейнером зависимостей;
- планировщик — отслеживает триггеры и создаёт задания, используя фабрику заданий. Обычно работает как
IHostedService.
Установка Quartz.NET в приложение ASP.NET Core¶
Настройка запуска задания по расписанию с помощью Quartz.NET¶
Использование кластеризации для добавления избыточности в фоновые задачи¶
-
Использование
BackgroundServiceкак базовой реализации интерфейсаIHostedServiceрассмотрено в этом разделе. ↩
Последнее обновление :
12 мая 2023 г.
Дата создания : 12 ноября 2022 г.
Дата создания : 12 ноября 2022 г.