使用简单的服务器
我使用一个简单的节点(centos或ubuntu)来运行我的Web应用程序,并在那里配置了一些cron作业来运行计划任务 . 在那一刻,一切都奏效了 .
使用Docker Swarm Cluster
我将我的应用程序迁移到Docker Swarm集群 . 现在,crons同时在多个容器中运行,这对我来说至关重要 . 我知道Docker正在研究名为 jobs 的新功能,但我现在需要一个解决方案 . 我想知道是否有任何方法可以运行一种cron作业流程 .
拦截器
crons正在执行以下任务:
-
创建有关流程的报告 .
-
向其他服务发送通知 .
-
更新应用程序中的数据 .
crons需要在服务器上运行,因为配置为使用php命令使用接口和 endpoints .
我的问题
我创建了同一个docker服务的多个实例来提供可用性 . 所有实例都在3个节点的集群中运行,并且每个节点都在同时并行运行其cron作业,我希望每个docker服务只运行一个作业 .
1 回答
也许这将是一个解决方案,定期创建一个docker服务,重启条件为none和replicas 1或创建一个带有副本1和重启条件的cron容器,它将是调度程序并附加一个包含所需cron脚本的卷 .