如果先前的触发器仍在运行,如何取消作业触发器?

时间:2012-08-29 13:13:43

标签: quartz-scheduler

我是Quartz调度程序的新手。我有一个批处理文件,运行需要3分钟。我需要使用Quartz调度程序每2分钟运行一次这个批处理。所以我每天安排3小时。 我的问题是我需要检查第一个触发器的状态,如果它不是完整的状态,我需要从这个工作出来。我需要继续我预定的下一份工作。 说明: 工作53触发从上午11点30分开始 下一次触发于上午11点32分开始 下一次触发于上午11点34分开始 我需要检查11.30am触发状态,如果没有竞争,我需要关闭这份工作并转到我预定的下一份工作。如何在Quartz调度程序中实现这一点

2 个答案:

答案 0 :(得分:1)

您可以从Scheduler获取当前正在执行的作业,并检查您的工作是否已完成:

Scheduler scheduler = new StdSchedulerFactory().getScheduler();
List jobsList = scheduler.getCurrentlyExecutingJobs();

答案 1 :(得分:0)

如果你有触发器实例,从上午11点30分开始,那么只需检查“trigger.STATE_BLOCKED” 等于1或不。如果为1,则作业处于运行状态。