首页 > 解决方案 > Spring boot 计划的 cron 作业在部署多个实例时运行 2 次

问题描述

我在应用程序中有四个 cron 工作,它们每天工作几个小时。我将它们部署在 6 个不同的实例中,并使用 shedLock 来防止重叠,但这还不够。因为有时作业延迟和锁定被删除,然后作业再次工作 2 次。如果 cron 作业仍在一个实例中工作,我该如何配置,其他实例在这个实例完成之前不会开始作业?

标签: javaspring-bootcronscheduled-tasksspring-scheduled

解决方案


为什么不使用distribute executor?如果你在多个instance中部署它们,你必须管理和调度instance的状态,例如instance A在t1运行,instance B在t2运行,非常复杂。你可以将它们部署在instance上或选择distribute调度执行器,在所有分布式系统中,状态管理非常困难


推荐阅读