Автоматический перезапуск граблей, если он дает исключение

У меня есть грабли, которые нужно всегда запускать. Но иногда эта задача может провалиться. И мне нужно авто перезагрузить его? Я думаю, что мне нужно использовать 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/

Другие вопросы по тегам