В сочетании с рецептом перезапуска Capistrano весьма удобно использовать cron, чтобы также запустить демон delayed_job при запуске, используя специальное время @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
только при запуске системы, но, по крайней мере, Ubuntu предлагает их запускать только при запуске, а не всякий раз, когда демон cron запускается или перезапускается. Если вы передадите restart
на script/delayed_job
, это, вероятно, будет работать в любом случае.