管理石英作业,删除

时间:2013-05-07 17:14:47

标签: java quartz-scheduler

考虑以下事件序列。使用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);

1 个答案:

答案 0 :(得分:1)

您使用的是什么触发器?如果您未指定触发器应多次触发,例如在一个重复的间隔,然后它只会发射一次,然后将被丢弃;如果你的工作细节不耐用,那么一旦没有更多触发器指向它,调度程序就会自动删除它。