部署Spring Boot应用程序多节点后,如何处理Cron作业?

时间:2018-07-05 06:54:20

标签: spring-boot schedule

当我使用spring任务时,处理一个简单的同步作业!但是,当我部署多节点时,如何确保cron作业仅运行一次。 也许你这样说:
1.在执行crob作业之前,请使用分布式锁控制标志。
2.集成的石英簇功能。
但我希望spring任务@EnableScheduling可以添加一个flag参数,以便我们在启动应用时可以设置一个标志。

2 个答案:

答案 0 :(得分:1)

我们正在成功使用https://github.com/lukas-krecan/ShedLock,尤其是动物园管理员提供商。

答案 1 :(得分:0)

简而言之,Spring Boot不允许多个实例之间进行任何类型的协调 相同的微服务。

这种协调的所有工作都是由与Spring Boot集成的第三方完成的。

其中一个例子确实是@Scheduled注释。

另一个是通过 flyway 进行的数据库迁移支持。

当许多节点启动并且必须完成迁移时,flyway会自行锁定迁移表,而Spring boot与此无关。

因此,最重要的是,没有这样的支持,您提出的所有选项都可以使用。