0

我有许多运行良好的 Hangfire 经常性工作。

但是,我需要添加工具以允许用户抢占计划并立即运行任务。

这是我的启动:

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());

这行得通,但它不会与重复的工作条目报告挂钩;因此用户看不到LastJobStateorLastExecution值的变化。

有没有办法访问它RecurringJob本身并触发它以更新这些值?

4

1 回答 1

4

你可以尝试使用RecurringJob.Trigger("job-id");

于 2015-04-27T22:26:39.837 回答