每8天在Hangfire中执行一次定期工作

时间:2016-02-03 04:51:02

标签: c# cron hangfire

是否可以在Hangfire中创建一个在给定天数后执行的定期作业,比如说8天。

我发现最接近的是一周内执行一次工作 -

RecurringJob.AddOrUpdate("MyJob",() => ScheduledJob(), Cron.Weekly());

了解Hangfire也接受标准CronExpression,我已尝试探索此频率的cron表达式,但无法找到它 - https://en.wikipedia.org/wiki/Cron

一个丑陋的解决方案可能是创建3个或4个作业,在相应的某些日期每月执行一次,但我不想这样做。

请提出任何建议。

2 个答案:

答案 0 :(得分:19)

最后,我使用CronExpression这样的方式来安排频繁的工作,每8天或任何天数。

string cronExp = "* * */8 * *";
RecurringJob.AddOrUpdate("MyJob",() => ScheduledJob(), cronExp);

CronExpression中的第三个段代表一个月的日期。

各段如下 - (参考:https://en.wikipedia.org/wiki/Cron

enter image description here

答案 1 :(得分:7)

更清洁的解决方案是使用 Cron.DayInterval(间隔)

对于你的情况,它将是

RecurringJob.AddOrUpdate("MyJob",() => ScheduledJob(), Cron.DayInterval(8));