【问题标题】:Configuring Delayed Jobs with Capistrano and Rails 4使用 Capistrano 和 Rails 4 配置延迟作业
【发布时间】:2013-09-17 01:35:08
【问题描述】:

我正在尝试让 Capistrano 使用 Rails 4 应用程序启动/停止延迟作业。我关注了instructions here,但它显示的是 Rails 3。这就是它现在的配置方式:

deploy.rb:

require 'delayed/recipes'
after "deploy:start", "delayed_job:start" 
after "deploy:stop", "delayed_job:stop" 
after "deploy:restart", "delayed_job:stop","delayed_job:start"

当我尝试部署时,在尝试执行 RAILS_ENV=production script/delayed_job stop

后出现以下错误
sh: script/delayed_job: not found

【问题讨论】:

  • 看起来延迟/食谱可能已经过时了?对于 rails 4,我们必须将 script/delayed_job 替换为 bin/delayed_job

标签: ruby-on-rails capistrano ruby-on-rails-4 delayed-job


【解决方案1】:

找到了解决方法(set :delayed_job_command, "bin/delayed_job"),希望这对其他人有帮助!

deploy.rb:

require 'delayed/recipes'
set :delayed_job_command, "bin/delayed_job"
after "deploy:start", "delayed_job:start"
after "deploy:stop", "delayed_job:stop"
after "deploy:restart", "delayed_job:stop","delayed_job:start"

【讨论】:

    【解决方案2】:

    接受的答案对我也不起作用。我做了以下

    deploy.rb

    def rails_env
      fetch(:rails_env, false) ? "RAILS_ENV=#{fetch(:rails_env)}" : ''
    end
    
    execute "cd #{current_path};#{rails_env} bin/delayed_job restart"
    

    【讨论】:

      【解决方案3】:

      对我来说这行不通。 我的生产环境由 ubuntu 12.04、rails 4、rbenv ruby​​ 2 和用于部署 capistrano 3 组成。 在对每个适用的解决方案进行了大量处理之后,我在重新启动任务的 deploy.rb 中提出了这一行。

      执行 :ruby, "/var/www/app/current/bin/delayed_job restart"

      如此简单,但我花了 2 天时间才想出它。 在我的设置中,我必须手动将 bin/delayed_job 放置到位。

      希望其他人觉得这有帮助。

      【讨论】:

        猜你喜欢
        • 2014-10-04
        • 2013-11-26
        • 2013-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-08
        • 2013-04-20
        相关资源
        最近更新 更多