我们正在使用quartz来安排批处理作业。我们正在尝试为工作触发器应用周末或假期策略。查看石英实现,使用日历很容易实现周末策略,但是对于假日实施。如果在创建工作之前提前很好地定义了假期,那么在自定义日历中可以很容易地处理周末。但是,如果可以动态创建假期,并且在运行时应用策略,我认为如果我们通过重写getNextTimeAfter方法在CronTrigger中处理它会更好。但那不起作用,任何想法,请帮忙!
答案 0 :(得分:0)
如果我们要在框架级别上完成这项工作,最好的策略是覆盖CronExpression类 但是,如果我们必须使用框架并处理假期和周末策略,我们遵循以下方法。 无论是经常性工作(OR),我们都创造了一份简单的工作。在当前作业执行结束时,我们根据下一个触发时间(应用假期/周末策略后)重新安排作业。这解决了我们的问题。
答案 1 :(得分:0)
我有同样的问题,我使用以下方法解决:
HolidayCalendar cal = new HolidayCalendar();
cal.addExcludedDate( someDate );
cal.addExcludedDate( someOtherDate );
sched.addCalendar("myHolidays", cal, false);
Trigger t = newTrigger().
...
.modifiedByCalendar("myHolidays") // but not on holidays
.build();
http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-04.html