Delayed_job используется в Фан Партии для фоновой обработки загруженных картинок. Работает замечательно, но не без греха — периодически падает гадина. Перерыл Интернет в поисках нужного рецепта, перепробовал кучу конфигураций для мониторинга delayed_job, максимум чего добился — стали приходить уведомления по почте, если процесс delayed_job падал.
Уже было совсем отчаялся, но вчера нашёл простое и элегантное решение — теперь сервис обработки картинок сможет работать без моего участия, а мне не придётся круглосуточно мониторить сервер — этим займётся monit.
Решение с конфигурационным файлом оказалось более чем простым.
1. Итак, первым делом открываем конфигурационный файл: sudo nano /etc/monit/monitrc
2. Вставляем следующий (ваш) код для настройки мониторинга delayed_job
check process job_runner
with pidfile [Путь к pidfile]/job_runner.pid
start program = «/bin/su — [user_name] -c ‘/usr/bin/env RAILS_ENV=production ruby [Путь к script вашего Rails app]/script/delayed_job start'»
stop program = «/bin/su — [user_name] -c ‘/usr/bin/env RAILS_ENV=production ruby [Путь к script вашего Rails app]/script/delayed_job stop'»
3. Сохраняем: Ctrl + X, Y
4. Перезапускаем демон monit: sudo /etc/init.d/monit restart
5. Занимаемся разработкой, вместо сисадминства.
Надеюсь вам это пригодится.