是否可以在Hangfire中创建一个在给定天数后执行的定期作业,比如说8天。
我发现最接近的是一周内执行一次工作 -
RecurringJob.AddOrUpdate("MyJob",() => ScheduledJob(), Cron.Weekly());
了解Hangfire也接受标准CronExpression
,我已尝试探索此频率的cron表达式,但无法找到它 -
https://en.wikipedia.org/wiki/Cron
一个丑陋的解决方案可能是创建3个或4个作业,在相应的某些日期每月执行一次,但我不想这样做。
请提出任何建议。
答案 0 :(得分:19)
最后,我使用CronExpression
这样的方式来安排频繁的工作,每8天或任何天数。
string cronExp = "* * */8 * *";
RecurringJob.AddOrUpdate("MyJob",() => ScheduledJob(), cronExp);
CronExpression
中的第三个段代表一个月的日期。
各段如下 - (参考:https://en.wikipedia.org/wiki/Cron)
答案 1 :(得分:7)
更清洁的解决方案是使用 Cron.DayInterval(间隔)。
对于你的情况,它将是
RecurringJob.AddOrUpdate("MyJob",() => ScheduledJob(), Cron.DayInterval(8));