我怎样才能运行两次capistrano任务?

时间:2016-05-26 15:28:33

标签: ruby-on-rails capistrano capistrano3

我有一个capistrano任务我想在部署期间运行两次。

具体来说,我想在开始部署之前和资产编译之后运行puma阶段性重启(capistrano-puma gem的一部分)。以前运行分阶段重启的原因是将内存使用量减少到新资产编译任务(启动rails环境)不会导致服务器进入内存交换的程度。我们一直在手动执行此操作,但有时会忘记。

如果我将其添加到我的部署文件中:

before 'deploy:started', "puma:phased-restart"

然后我的分阶段重启只运行一次而且puma最终用完了错误的发布目录。

如何重新启用capistrano任务并允许它运行两次?

1 个答案:

答案 0 :(得分:1)

非常类似于两次运行rake任务,您可以重新启用任务:

只需将其添加到部署文件

即可
after 'deploy:started', 'reenable_phased_restart'
task :reenable_phased_restart do
  ::Rake.application['puma:phased-restart'].reenable
end