Spring 调度程序不允许并发替代

Spring Scheduler Disallow Concurrent Alternative

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

排队的第二个实例

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

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