Spring Scheduler Disallow Concurrent Alternative

时间:2015-03-03 06:18:52

标签: java spring spring-scheduled

在Quartz中安排任务时,您可以设置失火和重新安排。这可以在示例场景中使用,其中有一个作业每30分钟运行一次,并且可能存在积压并且作业将执行超过30分钟。要防止同一作业运行两次,您可以使用@DisallowConcurrentExecution。完成后,作业将执行使用simpleSchedule().withMisfireHandlingInstructionNowWithExistingCount()排队的第二个实例。

现在在Spring Scheduler中似乎没有这种细粒度的能力,只有fixed-ratefixed-delay选项每30分钟安排一次,或者在上一个工作完成后等待30分钟。不使用限制为单个线程的锤子路径,因为我想增加其他批处理作业的并发运行的线程数,那么重建Quartz行为的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

所以看起来基本的Spring Scheduler没有这样的机制。要做到这一点,可以直接使用Spring Quartz Scheduler或Quartz。