确保Spring Quartz作业执行不重叠

我有一个Java程序,每20秒从Spring Qquartz执行一次。有时只需几秒钟即可执行,但是随着数据变大,我确信它会运行20秒或更长时间。

在一个实例仍在执行时,如何防止Quartz触发/触发作业?触发在数据库上执行相同操作的2个作业效果不佳。有没有办法可以进行某种同步?

回答:

如果您需要做的是每20秒发射一次,那么Quartz就是严重的过度杀伤力。java.util.concurrent.ScheduledExecutorService对于这个工作,应该足够了。

的ScheduledExecutorService还提供了两个语义用于调度。“固定比率”将尝试每20秒运行一次作业,而不管重叠情况如何,而“固定延迟”将尝试在第一个作业结束到下一个作业开始之间间隔20秒。如果要避免重叠,则固定延迟是最安全的。

以上是 确保Spring Quartz作业执行不重叠 的全部内容, 来源链接: utcz.com/qa/420420.html

回到顶部