在 Quartz 中安排任务时,您可以设置失火和重新安排。这可以在示例场景中使用,其中有一个作业每 30 分钟运行一次,并且可能存在积压,并且该作业将执行超过 30 分钟。为了防止同一作业运行两次,您可以使用@DisallowConcurrentExecution
. 完成后,作业将执行使用simpleSchedule().withMisfireHandlingInstructionNowWithExistingCount()
.
现在在 Spring Scheduler 中似乎没有这种细粒度的能力,只有fixed-rate
和fixed-delay
选项可以每 30 分钟安排一次或在上一个作业完成后等待 30 分钟。如果不使用限制为单个线程的锤子路线,因为我想增加线程数以使其他批处理作业同时运行,那么重新创建 Quartz 行为的最佳方法是什么?