2016-10-27 3 views
5

Я рассматриваю использование Hangfire в качестве планировщика заданий для повторяющихся заданий. Поэтому их настройка проста с AddOrUpdate, но как же я могу ее удалить? Я не хочу загрязнять свой код RecurringJob.RemoveIfExists(), когда это задание было удалено, а затем нужно запомнить его позже.Как удалить все временные задания hangfire при запуске?

Есть ли способ получить список всех повторяющихся заданий и удалить их при запуске сервера, и поэтому мой код будет добавлять их каждый раз? Если нет, если есть лучший способ?

например.

Применение версия 1: Добавлены новые замедленное воспламенение повторяющиеся задания Do something 1

Применение версия 2: Добавлены новые замедленное воспламенение повторяющиеся задания Do something 2 и Do Something 3

версия приложения 3: Удалены замедленное воспламенение повторяющиеся задания Do something 2

Проблема: работа будет по-прежнему существовать на сервере с ошибкой «Невозможно загрузить тип ...» и ее необходимо удалить.

ответ

17

Немного поздно на этом, но, надеюсь, это поможет кому-то еще. Я застрял в той же ситуации. В итоге ответ на вопрос HangFire recurring task data помог мне.

Я использую JobStorage для перебора всех повторяющихся заданий и удалить каждый, в свою очередь, как показано ниже:

using (var connection = JobStorage.Current.GetConnection()) 
{ 
    foreach (var recurringJob in connection.GetRecurringJobs()) 
    { 
     RecurringJob.RemoveIfExists(recurringJob.Id); 
    } 
} 

Я уверен, что есть способ лучше там, но я не мог найти его

Смежные вопросы