使用Capistrano在Rails 4中延迟工作

时间:2014-08-11 22:45:11

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

我无法想象如何在专用的Ubuntu服务器上启动延迟作业。

它在我的本地主机上工作正常,但是当我在我的服务器上运行时

sudo RAILS_ENV=production bin/delayed_job restart

我得到了

sudo: bin/delayed_job: command not found

最重要的是,如果我运行"佣金工作:工作RAILS_ENV =生产"命令我得到以下错误:

 PG::FeatureNotSupported: ERROR:  SELECT FOR UPDATE/SHARE is not allowed in subqueries

显然我的psql版本存在问题。

有什么方法可以让脚本工作吗?有效的Capistrano食谱吗?在网上找到的所有香港专业教育学院都是Rails 3和旧版capistrano的旧食谱。

提前致谢。

修改

我已经捆绑安装守护进程gem并生成" delayed_job:active_record"在我的本地计算机上,然后继续限制部署在生产服务器中安装和迁移的捆绑包。

bin / delayed_job文件存在于服务器中,但在找不到命令时失败。

2 个答案:

答案 0 :(得分:0)

并将其添加到config / environment.rb:

ENV['RAILS_ENV'] ||= 'production'

然后在您的生产服务器上:

RAILS_ENV=production rake db:migrate 

RAILS_ENV=test production generate delayed_job:active_record && RAILS_ENV=production rake db:migrate

现在你这样做了:

RAILS_ENV=production script/delayed_job start

至于您所面临的Capistrano错误,请尝试添加如下命令:

run "cd #{current_path}; #{sudo} RACK_ENV=production bundle exec #{current_path}/bin/delayed_job start"

答案 1 :(得分:0)

您必须在目标服务器上运行它:

bundle exec rails generate delayed_job