Запускать повторяющееся задание Hangfire из скрипта базы данных
У меня есть довольно сложный sql-скрипт, который очищает мою базу данных и будет время от времени запускаться вручную. Сразу после запуска сценария я должен запустить повторяющееся задание зависания, которое обычно выполняется только один раз в день.
Чтобы не забыть запустить скрипт, я хотел бы запустить выполнение прямо из sql-скрипта. Есть ли простой способ изменить одну из таблиц Hangfire для выполнения этой задачи?
Версия ядра Hangfire - 1.7.5
ОБНОВЛЕНИЕ: К сожалению, я не нашел ни одной таблицы зависаний, содержащей повторяющиеся задания. Поэтому я думаю, что они вообще не сохранились. Можно ли было запустить задание, просто вставив новую строку в таблицу HangFire.Job? Или это плохая идея?
1 ответ
Извините за то, что не ответил на этот вопрос здесь, в stackoverflow. Из-за отсутствия чистого решения для зависания я наконец реализовал некоторую настраиваемую логику с помощью отдельной таблицы «DatabaseState» .
Моя таблица DatabaseState имеет следующие поля: DateOfDbUpdate (datetime) и HangfireExecuted (bool). Каждый раз, когда я запускаю свой сложный SQL-скрипт, я просто вставляю новую запись в таблицу с текущим временем и HangfireExecuted = false.
В коде я создал повторяющееся задание зависания, которое каждые несколько секунд проверяет, есть ли новая запись в таблице DatabaseState с HangfireExecuted == false. Если он найдет такую запись, он запустит очистку.
К сожалению, это не очень четкое и прямое решение. Я был бы счастлив, если бы кто-нибудь другой придумал реальное решение для зависания.