考虑以下事件序列。使用quartz 1.8.0
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.8.0</version>
</dependency>
我安排将来执行的工作
job.setGroup(MY_GROUP);
Date date = scheduler.scheduleJob(job, trigger); // Valid date received
作业按预期执行。
然后我尝试通过运行
来删除作业 boolean unscheduled = scheduler.deleteJob(event.getName(), MY_GROUP); // Always false
尝试删除作业始终会生成**false**
如果我让应用程序运行超过计划执行的时间,则在删除它之后,它...不会运行(就好像它已成功删除)
什么可以解释这样的行为?我怎么知道石英作为小组的一部分安排了什么?
修改
触发器设置为:
SimpleTrigger trigger = new SimpleTrigger();
trigger.setStartTime(new Date(event.getStartTime().inMillis()));
trigger.setName("trigger" + event.getTriggerName());
trigger.setRepeatInterval(event.getFrequency());
trigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
答案 0 :(得分:1)
您使用的是什么触发器?如果您未指定触发器应多次触发,例如在一个重复的间隔,然后它只会发射一次,然后将被丢弃;如果你的工作细节不耐用,那么一旦没有更多触发器指向它,调度程序就会自动删除它。