我不知道如何在专用的 Ubuntu 服务器上启动延迟作业。
它在我的本地主机上运行良好,但是当我在我的服务器上运行时
sudo RAILS_ENV=production bin/delayed_job restart
我明白了
sudo: bin/delayed_job: command not found
最重要的是,如果我运行“rake jobs:work RAILS_ENV=production”命令,我会收到以下错误:
PG::FeatureNotSupported: ERROR: SELECT FOR UPDATE/SHARE is not allowed in subqueries
显然我的 psql 版本有问题。
有什么方法可以让脚本运行吗?有没有有效的 Capistrano 食谱?我在网上找到的都是 Rails 3 和旧版 Capistrano 的旧配方。
提前致谢。
编辑:
我已经在我的本地机器上捆绑安装守护进程 gem 并生成“delayed_job:active_record”,然后继续在生产服务器中安装和迁移哪个 bundle 。
服务器中存在 bin/delayed_job 文件,但失败并显示命令未找到。
最佳答案
并将其添加到 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"
关于ruby-on-rails - 使用 Capistrano 在 Rails 4 中延迟作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25253616/