Объявленная функция Hangfire заключается в том, что запланированные задачи сохраняются за пределами границ процесса.
На практике я заметил, что всякий раз, когда процесс приложения с поддержкой Hangfire завершается (по любой причине), Hangfire каким-то механизмом немедленно перезапускает его.
Это можно легко продемонстрировать с помощью Task Monitor > MyApp.exe > End Task
: сразу же будет запущен новый MyApp.exe
.
Я предполагал, что это разумная стратегия для фонового монитора и исполнителя, предназначенного для интеграции. в приложение, а не запускаться как отдельная служба.
Но мне интересно узнать, как это повлияет на развертывание.
- Как Hangfire реагирует на исполняемый файл приложения, переполненный новая версия ?
- Для службы Windows, как Hangfire реагирует на остановку / запуск службы?
- Для приложения IIS, размещенного Asp. Net Основное приложение, как Hangfire отвечает на остановку / запуск site / app-pool?
Мне также интересны ситуации, когда можно было бы на законном основании добиться полного завершения процесса (включая прекращение обработки Hangfire всех запланированных задач) - возможно, в ответ на производственный инцидент или во время тестирования dev или test.