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