Quartz-Scheduler每两周调度一次作业,而忽略先前的失火

时间:2018-10-26 13:41:14

标签: c# quartz.net

我正在尝试每隔2周在给定的一天(用户定义)上安排工作,并使用Quartz-Scheduler忽略和以前的失火。

例如: 如果我将开始日期设置为10月7日(星期日),今天的日期是10月26日,则应该在11月4日(星期日),11月18日(星期日)触发。

我发现做到这一点的唯一方法是将WithCalendarIntervalSchedule扩展名和StartAt一起使用。这种方法的问题在于,如果开始日期在今天之前,那么在计划触发器时将触发所有不触发事件。

Cron表达式和CronScheduleBuilder似乎不允许这样做。

我不能忽略失火,因为我不希望由于任何原因而无法按时启动的触发器。 而且我不能强迫开始日期在今天之后。

让我知道是否遗漏了任何东西,现在我一直在寻找解决方案。

1 个答案:

答案 0 :(得分:0)

结果证明Quartz Scheduler并不很好地支持每2周进行一次调度。

使之起作用的技巧是使用StartAt扩展名将开始日期设置为下一个应触发的DateTime,然后将WithCalendarIntervalSchedule与WithIntervalInWeeks一起使用。