我有一个capistrano任务我想在部署期间运行两次。
具体来说,我想在开始部署之前和资产编译之后运行puma阶段性重启(capistrano-puma gem的一部分)。以前运行分阶段重启的原因是将内存使用量减少到新资产编译任务(启动rails环境)不会导致服务器进入内存交换的程度。我们一直在手动执行此操作,但有时会忘记。
如果我将其添加到我的部署文件中:
before 'deploy:started', "puma:phased-restart"
然后我的分阶段重启只运行一次而且puma最终用完了错误的发布目录。
如何重新启用capistrano任务并允许它运行两次?
答案 0 :(得分:1)
非常类似于两次运行rake任务,您可以重新启用任务:
只需将其添加到部署文件
即可after 'deploy:started', 'reenable_phased_restart'
task :reenable_phased_restart do
::Rake.application['puma:phased-restart'].reenable
end