Я подумываю использовать Hangfire https://www.hangfire.io для замены старого домашнего расписания ASP. NET веб-сайт / приложение.
Я создал простой тестовый проект используя Hangfire. Я могу начать проект с Hangfire, отправить (в коде) пару очень простых однократных и повторяющихся задач, просмотреть панель инструментов и т. Д. c.
Я ищу дополнительные предложения для создания немного более сложный код (и классы) для запланированных задач, и у меня есть вопрос о том, что происходит с постоянно запланированными задачами при повторной публикации сайта Hangfire в рабочей среде.
Я прочитал некоторую документацию по сайт Hangfire, просмотрел 2 учебника, отсканировал форумы Hangfire и немного поискал в StackOverflow и в Интернете. Многое из того, что я видел, показывает, как запланировать что-то очень простое (например, Console.WriteLine), но ничего более сложного. Учебное пособие «Highlighter» было полезным, но оно, по сути, показывает, как запланировать один экземпляр (чуть более продолжительного) задания в ответ на интерактивный ввод данных пользователем. Я понимаю, насколько это может быть полезно, но меня больше интересуют повторяющиеся задачи, которые отправляются и затем выполняются каждый день (или каждый час и т. Д. c.) И не требуют повторной отправки. Этими задачами могут быть что-то вроде отправки электронной почты пользователям каждую ночь, пакетной обработки некоторых данных, импорта ночной подачи внешних данных, периодического вызова веб-службы для выполнения какой-либо обработки и т. Д. c.
Имеется ли какой-либо пример кода, который показывает некоторые примеры, подобные этому, или какое-либо руководство по наиболее подходящему подходу для структурирования такого кода в интерфейсе и классе (ах)?
Во-вторых, в моем случае, большинство из задачи будут «постоянными» (всегда существующими как повторяющиеся задачи). Если я настрою код для добавления их в качестве повторяющихся задач вскоре после запуска приложения Hangfire в рабочей среде, как мне следует обращаться с ним при публикации обновлений в рабочей среде (когда эта же инициализация будет выполняться снова)? Должен ли я просто вызвать «AddOrUpdate» с тем же идентификатором, и Hangfire позаботится об этом? Должен ли я сначала вызвать «RemoveIfExists», а затем снова добавить повторяющуюся задачу? Есть ли какой-то другой подход, который следует использовать?