我们使用石英来安排批处理作业。我们正在尝试为工作触发器应用周末或假期策略。查看石英实施,使用日历实施周末策略很容易,但是对于假期实施。如果在创建工作之前提前定义了假期,那么在自定义日历中与周末一起处理会很容易。但是,如果可以动态创建假期,并且可以在运行时应用策略,我认为如果我们在 CronTrigger 中通过覆盖 getNextTimeAfter 方法来处理它会更好。但这不起作用,任何想法,请帮助!
问问题
2125 次
2 回答
0
如果我们必须在框架级别进行这项工作,最好的策略是覆盖 CronExpression 类。但是,如果我们必须只使用框架并处理假期和周末策略,我们遵循以下方法。无论是不是重复性工作 (OR),我们都会创建一个简单的工作。在当前作业执行结束时,我们根据下一个触发时间重新安排作业(在应用假期/周末策略之后)。这解决了我们的问题。
于 2016-02-03T08:49:42.393 回答
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
于 2017-04-06T11:40:05.183 回答