Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
第一个异常后的java quartz停止计划_Java_Quartz Scheduler - Fatal编程技术网

第一个异常后的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()
,但如果你将来可能要添加新的作业或触发器,这不是一个好主意