0

我有一个带有两个实例 app1 和 app2 的生产服务器,我使用 capistrano 来部署我的应用程序,即:cap app1 deploy,cap app2 deploy。

我现在正在配置发条来安排我延迟的工作。但是会发生什么,作业被安排了两次,因为在部署应用程序后,时钟进程同时在 app1 和 app2 上运行。

如何强制 capistrano 仅在 app2 上运行发条进程?

感谢您的提示。米罗斯拉夫

解决方案

将以下设置添加到 deploy.rb 中:

set :clockwork_role, :clock

然后只配置其中一个实例使用角色:clock,即:

server 'URL', user: 'deploy', roles: %w{app db web clock}
4

1 回答 1

1

在您的情况下,您可以true在一种情况下设置一些配置变量,false在第二种情况下设置为,并在设置时钟时检查它。

但是要提一下,您正在为一个阶段的不同服务器使用不同的“阶段”(通常是“阶段”、“生产”、“质量保证”、“功能”等)。Capistrano 有“角色”(应用程序、数据库、后台作业等),每个角色都可以有多个服务器。

另请提及您使用的是哪个 capistrano 版本 - 从 2 到 3 有很大变化

于 2016-02-21T20:54:24.937 回答