【发布时间】:2010-12-28 08:49:15
【问题描述】:
对于我的应用程序,我创建作业并使用 CronTriggers 安排它们。每个作业只有一个触发器,并且作业名称和触发器名称都相同。没有作业共享触发器。
现在,当我创建像这样的 "0/1 * * * * ?" 指示作业每秒执行一次的 cron 触发器时,它工作得很好。
当我第一次通过调用暂停工作时,问题就出现了:
scheduler.pauseJob(jobName, jobGroup);
然后在 50 秒后恢复工作:
scheduler.resumeJob(jobName, jobGroup);
我看到的是,在这 50 秒内,作业没有按要求执行。但是在我恢复工作的那一刻,我看到同时执行了 50 次工作!!!
我认为这是由于失火指令的默认设置,但即使在创建时将触发器的失火指令设置为这样:
trigger.setMisfireInstruction(CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING);
同样的事情也会发生。任何人都可以提出解决此问题的方法吗?
【问题讨论】:
标签: java scheduling scheduled-tasks quartz-scheduler