Ruby on rails 如何运行capistrano任务两次?

Ruby on rails 如何运行capistrano任务两次?,ruby-on-rails,capistrano,capistrano3,Ruby On Rails,Capistrano,Capistrano3,我有一个capistrano任务,我想在部署期间运行两次 具体来说,我希望在开始部署之前和编译资产之后(capistrano puma gem的一部分),运行puma分阶段重启。在此之前运行分阶段重新启动的原因是将内存使用量减少到新的资产编译任务(启动rails环境)不会导致服务器进行内存交换的程度。我们一直在手动执行此操作,但有时会忘记 如果我将此添加到部署文件: 在“部署:启动”之前,“puma:分阶段重新启动” 然后,我的分阶段重启只运行一次,puma最终运行出错误的发布目录 如何重新启用

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

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

如果我将此添加到部署文件:

在“部署:启动”之前,“puma:分阶段重新启动”

然后,我的分阶段重启只运行一次,puma最终运行出错误的发布目录


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

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

只需将其添加到部署文件中

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

实际上,由于capistrano3现在是基于Rake的,所以它与两次运行Rake任务完全相同,正如这里所讨论的