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