Перейти к содержанию

Координация фоновых задач с помощью Quartz.NET

Иногда фоновые задачи необходимо обновлять по расписанию, которое может быть, зачастую, довольно сложным. Можно, конечно, написать планировщика самостоятельно. А можно воспользоваться готовыми библиотеками. Две наиболее известные из них — это Hangfire и Quartz.NET. Quartz.NET, по сути, предлагает расширенную версию функциональности класса BackgroundService1. Помимо обширных возможностей для планирования, библиотека поддерживает работу в кластерном окружении, распределяя задания между репликами.

Примечание

Quartz.NET основана на библиотеке для Java под названием Quartz Scheduler.

Quartz.NET основана на четырёх концепциях:

  • задания — фоновые задачи с необходимой логикой;
  • триггеры — определяют, когда задание будет запускаться по расписанию, например “каждые пять минут”, или “каждый второй вторник”. У задания может быть несколько триггеров;
  • фабрика заданий — отвечает за создание экземпляров заданий. Интегрирована с контейнером зависимостей;
  • планировщик — отслеживает триггеры и создаёт задания, используя фабрику заданий. Обычно работает как IHostedService.

Установка Quartz.NET в приложение ASP.NET Core

Настройка запуска задания по расписанию с помощью Quartz.NET

Использование кластеризации для добавления избыточности в фоновые задачи


  1. Использование BackgroundService как базовой реализации интерфейса IHostedService рассмотрено в этом разделе


Последнее обновление : 12 мая 2023 г.
Дата создания : 12 ноября 2022 г.

Комментарии

Комментарии