Автоматический перезапуск граблей, если он дает исключение
У меня есть грабли, которые нужно всегда запускать. Но иногда эта задача может провалиться. И мне нужно авто перезагрузить его? Я думаю, что мне нужно использовать God Gem или, может быть, есть другие способы решения этой проблемы?
3 ответа
Решение
В моем случае, Боже, драгоценный камень - это то, что мне нужно, спасибо за ваши ответы!
Все зависит от вашей проблемы, но как насчет чистого решения Ruby:
begin
puts "Start"
raise "BOOOM"
rescue Exception => e
puts e.message
sleep(2)
retry
end
Просто повторите блокировку каждый раз, когда вы поймаете исключение.
Если вы используете Ubuntu, вы можете довольно легко использовать upstart с такой конфигурацией:
start on startup
stop on shutdown
pre-start script
cd /var/www/my-app/current
end script
script
exec RAILS_ENV=production bundle exec rake my_task_name
end script
Подробнее читайте здесь: http://www.stackednotion.com/blog/2012/02/09/easy-rails-daemons-with-upstart/