我正在尝试让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 =生产脚本/ delayed_job停止
后出现以下错误sh: script/delayed_job: not found
答案 0 :(得分:18)
找到解决方法(设置: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"
答案 1 :(得分:3)
接受的答案对我也不起作用。我做了以下
<强> 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"
答案 2 :(得分:1)
对我来说这没用。 我的生产环境包括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放到位。
希望其他人觉得这很有帮助。