仅在一个生产实例上运行发条(rails capistrano)

时间:2016-02-21 19:40:58

标签: ruby-on-rails capistrano clockwork

我有一个带有两个实例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}

1 个答案:

答案 0 :(得分:1)

在您的情况下,您可以在一种情况下将一些配置变量设置为true,在第二种情况下设置为false,并在设置发条时进行检查。

但是要提一下,您正在为一个阶段的不同服务器使用不同的“阶段”(通常是“暂存”,“生产”,“qa”,“功能”等)。 Capistrano有'角色'(app,db,后台工作等),每个角色都有几台服务器。

另请注意您使用的capistrano版本 - 从2到3有很大的变化