在安排石英调度程序时设置周末或假日策略

时间:2015-11-30 13:08:51

标签: customization quartz-scheduler weekend

我们正在使用quartz来安排批处理作业。我们正在尝试为工作触发器应用周末或假期策略。查看石英实现,使用日历很容易实现周末策略,但是对于假日实施。如果在创建工作之前提前很好地定义了假期,那么在自定义日历中可以很容易地处理周末。但是,如果可以动态创建假期,并且在运行时应用策略,我认为如果我们通过重写getNextTimeAfter方法在CronTrigger中处理它会更好。但那不起作用,任何想法,请帮忙!

2 个答案:

答案 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