У меня есть ряд повторяющихся заданий Hangfire, которые хорошо работают.Как программно выполнить ReccurringJob сразу?
Однако мне нужно добавить средство, позволяющее пользователям выгружать расписание и запускать задачу немедленно.
Это мой запуск:
RecurringJob.AddOrUpdate<SendFilesJob>("SendFilesJob", j => j.Execute(), send_schedule);
Я говорю пользователям, когда задание последнего запуска, и когда он будет работать дальше, например, так:
using (var connection = JobStorage.Current.GetConnection())
{
foreach (var recurringJob in connection.GetRecurringJobs())
{
//report LastExecution, NextExecution, LastJobState
}
}
Это также показывает, когда работа в настоящее время обрабатывая через LastJobState
, что отлично.
Однако, когда пользователь выгружает немедленно запустить задачу, я называю это так:
BackgroundJob.Enqueue<SendFilesJob>(j => j.Execute());
Это работает, но он не перехватывает в повторяющейся отчетности ввода задания; поэтому пользователи не видят изменений в значениях LastJobState
или LastExecution
.
Есть ли способ получить доступ к самому RecurringJob
и запустить его, чтобы он обновил эти значения?