当我使用spring任务时,处理一个简单的同步作业!但是,当我部署多节点时,如何确保cron作业仅运行一次。
也许你这样说:
1.在执行crob作业之前,请使用分布式锁控制标志。
2.集成的石英簇功能。
但我希望spring任务@EnableScheduling可以添加一个flag参数,以便我们在启动应用时可以设置一个标志。
答案 0 :(得分:1)
我们正在成功使用https://github.com/lukas-krecan/ShedLock,尤其是动物园管理员提供商。
答案 1 :(得分:0)
简而言之,Spring Boot不允许多个实例之间进行任何类型的协调 相同的微服务。
这种协调的所有工作都是由与Spring Boot集成的第三方完成的。
其中一个例子确实是@Scheduled
注释。
另一个是通过 flyway 进行的数据库迁移支持。
当许多节点启动并且必须完成迁移时,flyway会自行锁定迁移表,而Spring boot与此无关。
因此,最重要的是,没有这样的支持,您提出的所有选项都可以使用。