Startered_job при запуске
-
19-09-2019 - |
Вопрос
Я использую задержку с Capistrano и хотел бы начать задержку с задержкой при запуске веб -приложения с помощью «script/script/doyed_job start '. Таким образом, Capistrano может перезапустить его при развертывании. Если сервер перезагрузится, то мой задержка_JOBS должен начать с проекта.
Как я могу это сделать? Должен ли я смотреть на это в файлах среды или в качестве инициализатора?
Решение
Вы должны создать один рецепт с командой перезапуска.
namespace :delayed_job do
desc "Restart the delayed_job process"
task :restart, :roles => :app do
run "cd #{current_path}; RAILS_ENV=#{rails_env} script/delayed_job restart"
end
end
Затем вы добавляете его для выполнения в конце вашего развертывания.
after "deploy:update_code", "delayed_job:restart"
Другие советы
В сочетании с рецептом перезапуска Capistrano он довольно удобен для использования Cron, чтобы также запустить демон задержка @reboot
Время в Crontab:
@reboot /bin/bash -l -c 'cd /path/to/app && RAILS_ENV=production script/delayed_job restart'
И это еще более удобно вместе с когда бы ни Чтобы настроить запланированную задачу:
job_type :envcommand, 'cd :path && RAILS_ENV=:environment :task'
every :reboot do
envcommand 'script/delayed_job restart'
end
Не уверен, что вся реализация Cron действительно работает только @reboot
При запуске системы, но, по крайней мере, швам Ubunt Если вы пройдете restart
к script/delayed_job
Это, вероятно, будет работать в любом случае.
Немного опоздал на этот вопрос, но версия 2.1.4 of SoerdEd_job имеет рецепты Capistrano:
https://github.com/collectiveadea/delayed_job/wiki/rails-3-and-capistrano
Это ответ Дэмиена Матье, но уже является частью драгоценного камня Doyed_job.
Теперь это работает с обоими рельсами 2 и 3:
В deploy.rb добавьте следующие строки:
require "delayed/recipes"
set :rails_env, 'production' #added for delayed_job
before "deploy:restart", "delayed_job:stop"
after "deploy:restart", "delayed_job:start"
after "deploy:stop", "delayed_job:stop"
after "deploy:start", "delayed_job:start"
Можно загрузить и монитор задержка с монитом:
Как отслеживать задержку с монитом