Задержка работы в 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"
Другие вопросы по тегам