【问题标题】:How can I run a capistrano task twice?如何两次运行 capistrano 任务?
【发布时间】:2016-09-24 17:04:38
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: ruby-on-rails capistrano capistrano3


    【解决方案1】:

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

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 2017-02-16
    • 2023-03-24
    • 2023-02-25
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    相关资源
    最近更新 更多