我正在尝试每隔2周在给定的一天(用户定义)上安排工作,并使用Quartz-Scheduler忽略和以前的失火。
例如: 如果我将开始日期设置为10月7日(星期日),今天的日期是10月26日,则应该在11月4日(星期日),11月18日(星期日)触发。
我发现做到这一点的唯一方法是将WithCalendarIntervalSchedule
扩展名和StartAt
一起使用。这种方法的问题在于,如果开始日期在今天之前,那么在计划触发器时将触发所有不触发事件。
Cron表达式和CronScheduleBuilder似乎不允许这样做。
我不能忽略失火,因为我不希望由于任何原因而无法按时启动的触发器。 而且我不能强迫开始日期在今天之后。
让我知道是否遗漏了任何东西,现在我一直在寻找解决方案。
答案 0 :(得分:0)
结果证明Quartz Scheduler并不很好地支持每2周进行一次调度。
使之起作用的技巧是使用StartAt扩展名将开始日期设置为下一个应触发的DateTime,然后将WithCalendarIntervalSchedule与WithIntervalInWeeks一起使用。