Запуск delayed_job при запуске с рельсами - PullRequest
4 голосов
/ 22 июня 2010

Я хочу запустить скрипт / delayed_job на моем производстве, когда я начну свой сервер rails.В любом случае, я могу это сделать?

РЕДАКТИРОВАТЬ ::

Я добавил эту строку в мой config / initializers / delayed_job.rb.

Delayed::Worker.new.start 

Но моя задержкасервер заданий не запускается, когда я запускаю приложение rails.Есть ли другое решение ??

Ответы [ 3 ]

0 голосов
/ 22 июня 2010

Я бы рекомендовал развернуть ваше приложение с Capistrano и определить хук after: deploy для запуска / перезапуска DJ при каждом развертывании.

Я бы также порекомендовал использовать Resque over DelayedJob, так как последний имеет склонность просто умирать безо всякой причины и обычно требует мониторинга Monit / God и перезапуска.

namespace :delayed_job do
  desc "Start delayed_job process" 
  task :start, :roles => :app do
    run "cd #{current_path}; script/delayed_job start #{rails_env}" 
  end

  desc "Stop delayed_job process" 
  task :stop, :roles => :app do
    run "cd #{current_path}; script/delayed_job stop #{rails_env}" 
  end

  desc "Restart delayed_job process" 
  task :restart, :roles => :app do
    run "cd #{current_path}; script/delayed_job restart #{rails_env}" 
  end
end

after "deploy:start", "delayed_job:start" 
after "deploy:stop", "delayed_job:stop" 
after "deploy:restart", "delayed_job:restart"
0 голосов
/ 22 июня 2010

Вы можете установить файл init.d, но я бы порекомендовал monit или god.Бог рубин, так что он знаком, но это также означает, что он немного просачивается.Если вы собираетесь управлять Богом, я рекомендую использовать cron для перезапуска. Это ОЧЕНЬ хороший пост о настройке monit на вашем сервере.

Мы пошли по Божьему пути, но если бы нам пришлось это повторить - мы бы сделали monit.

0 голосов
/ 22 июня 2010

Вы можете сделать

Delayed::Worker.new.start

в вашем каталоге инициализаторов (создайте там новый файл ".rb", и он запустится с вашим приложением)

...