Задержка работы в Rails 4 с Capistrano
Я не могу понять, как запустить Delayed Jobs на выделенном сервере 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.
Заранее спасибо.
РЕДАКТИРОВАТЬ:
Я уже установил гем демонов и сгенерировал "delayed_job:active_record" на моем локальном компьютере, а затем приступил к развертыванию cap, комплект которого установлен и перенесен на рабочий сервер.
Файл bin/delayed_job существует на сервере, но он завершается ошибкой, команда не найдена.
2 ответа
Вы должны запустить это на целевом сервере:
bundle exec rails generate 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"