在asp.net表单中使用hangfire创建计划(延迟)重复作业

时间:2017-02-05 09:23:16

标签: asp.net webforms delayed-job hangfire recurring

我想用Hangfire创建一个定期工作,但我想让它延迟并在特定日期开始。
例如,我将创建一个每周执行任务的工作,但我希望此任务在3天后启动!

在搜索之后,我无法找到可以同时执行延迟任务并使其同时重复出现的内容。

我刚刚开始使用hangfire,所以我没有太多使用它的经验。

1 个答案:

答案 0 :(得分:2)

Hangfire提供了以这种方式创建定期工作的可能性:

RecurringJob.AddOrUpdate(
    () => myRecurringJob(),
    Cron.Daily);

然而,正如您所提到的,这不允许推迟第一次出现的日期。要解决此问题,我建议您使用预定作业稍后创建您的定期作业:

BackgroundJob.Schedule(() => myRecurringJobCreation(), 
                       new DateTimeOffset(new DateTime(2017,2,10)));

//...
public void myRecurringJobCreation() {
    RecurringJob.AddOrUpdate(
        () => myRecurringJob(),
        Cron.Daily);
}