第一个异常后的java quartz停止计划
我有一份工作:第一个异常后的java quartz停止计划,java,quartz-scheduler,Java,Quartz Scheduler,我有一份工作: public class GlobalIdleMonitorJob extends AbstractJob { @Override public void execute(JobExecutionContext context) throws JobExecutionException { try { getJobService().processUserIdle(); }catch(Exc
public class GlobalIdleMonitorJob extends AbstractJob {
@Override public void execute(JobExecutionContext context)
throws JobExecutionException {
try {
getJobService().processUserIdle();
}catch(Exception e){
getLogger().error("GlobalIdleMonitorJob",e);
}
}
}
此作业每X秒运行一次。我希望这项工作在第一次失败后停止。换句话说,如果
getJobService().processUserIdle();
引发异常,我希望此作业仅在手动重新启动或web应用服务器重新启动后不再运行。我应该在catch块中抛出一个特殊异常还是如何配置它?您只需将JobExecutionException类对象的setUnscheduleAllTriggers方法设置为true(true)。请参考石英官方网站的以下附件示例,以供参考
--在您的catch block中,您可以取消如下作业计划:
try {
getJobService().processUserIdle();
} catch(Exception e) {
scheduler.unscheduleJob(triggerKey)
getLogger().error("GlobalIdleMonitorJob",e);
}
如果你的应用程序中没有任何其他触发器或作业,你可以简单地调用scheduler.clear()
,但如果你将来可能要添加新的作业或触发器,这不是一个好主意