我有一个带有两个实例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}
答案 0 :(得分:1)
在您的情况下,您可以在一种情况下将一些配置变量设置为true
,在第二种情况下设置为false
,并在设置发条时进行检查。
但是要提一下,您正在为一个阶段的不同服务器使用不同的“阶段”(通常是“暂存”,“生产”,“qa”,“功能”等)。 Capistrano有'角色'(app,db,后台工作等),每个角色都有几台服务器。
另请注意您使用的capistrano版本 - 从2到3有很大的变化