Администрирование фоновых задач
Для администрирования фоновых задач в Business Studio используется Hangfire.
Hangfire — это система фонового выполнения задач в .NET приложениях. Она применяется для:
- выполнения фоновых задач;
- планирования задач по расписанию;
- повторяющихся задач;
- отложенных задач;
- обработки очередей.
Данные Hangfire хранятся в Redis и включают:
- задания;
- текущее состояние заданий;
- историю переходов состояний задач (очередь, выполнение, завершение, ошибка и т.д.).
Доступ к администрированию фоновых задач осуществляется пунктом Меню администратора «Фоновые задачи».

В Hangfire Dashboard есть два раздела для мониторинга: Realtime и History. Они предназначены для анализа выполнения фоновых задач и их состояния во времени.
Realtime — отображает статистику в реальном времени: количество задач по статусам (например, выполняющиеся, успешно завершённые, завершённые с ошибкой). Позволяет видеть текущее состояние выполнения задач и изменения их статусов.
History — отображает агрегированную статистику за выбранный период времени: количество выполненных задач, количество успешных и завершённых с ошибкой, а также общие показатели выполнения задач (включая распределение по времени).
Эти разделы позволяют оценивать поведение фоновых задач во времени, но не отображают детальную информацию о состоянии очередей — для этого используются отдельные разделы Dashboard (например, Jobs и Servers).
В данном интерфейсе во вкладке Jobs доступны следующие статусы состояния задач (см. Таблицу 1).
| Статус задачи | Описание |
|---|---|
| Enqueued | Задачи, находящиеся в очереди и ожидающие выполнения. |
| Scheduled | Отложенные задачи, запланированные на выполнение в будущем. |
| Processing | Задачи, находящиеся в процессе выполнения. |
| Succeeded | Успешно выполненные задачи. |
| Failed | Задачи, завершившиеся с ошибкой выполнения. |
| Deleted | Задачи, удалённые из очереди и более не подлежащие выполнению. |
| Awaiting | Задачи, созданные, но ещё не готовые к выполнению. |
В разделе Jobs отображается информация о том, какие очереди обслуживает сервер, а также следующие параметры:
- Length – количество задач, находящихся в очереди и ожидающих выполнения.
- Fetched – количество задач, уже взятых воркером в обработку.
- Next jobs – количество задач, ожидающих выполнения следующими.
Пример вкладки Jobs представлен на Рисунке 2.

Раздел Servers показывает, какие сервера используются в данный момент. Описание параметров раздела Servers представлено в Таблице 2.
| Параметр | Описание |
|---|---|
| Name | Название сервера. |
| Workers | Количество задач, выполняемых сервером одновременно, то есть уровень параллельной обработки фоновых задач. |
| Queues | Какие очереди обслуживает сервер. |
| Started | Время запуска сервера. |
| Heartbeat | Время последней отметки сервера в системе, используемое для контроля его работоспособности. Если сервер не отправляет Heartbeat в течение заданного таймаута, он считается недоступным, а его незавершённые задачи возвращаются в очередь Enqueued. |
Пример вкладки Servers представлен на Рисунке 3.
