我无法想象如何在专用的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文件存在于服务器中,但在找不到命令时失败。
答案 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