我已经使用JDBCJobStore配置了简单的触发器调度程序。一切正常,直到服务器运行,但如果服务器出现故障并稍后重新启动,则在重新启动服务器后不会触发在服务器停机期间错过触发的作业。但重启后的预定工作也正常。
例如:如果安排了3个工作如下:
Job 1 - 15-April-2014 9 AM
Job 2 - 15-April-2014 9:30 AM
Job 3 - 15-April-2014 10 AM
对于上述情况,作业1按预期执行,现在服务器从上午9:15到9:45停止,此处错过执行作业2。稍后在9:45重新启动服务器后,不会触发作业2。但是在上午10点,作业3被触发并按预期执行。
我不知道我错过了什么。我是否需要在计划作业期间添加任何特定属性或Java代码。因此石英可以触发工作2,请有人帮我找到解决方案。提前致谢。
答案 0 :(得分:0)
一旦服务器关闭所有计划作业将会失效。 在服务器启动时,您需要将所有作业重新提交到RAM
SchedulerUtility schedUtil=new SchedulerUtility();
try {
Scheduler sched = schedUtil.getScheduler();
sched.start();
} catch (IOException e) {
log.error(e);
//e1.printStackTrace();
} catch (SchedulerException e) {
log.error(e);
//e1.printStackTrace();
}
确保每次服务器启动/重启时都需要执行此操作