如果它给出异常,则自动重启rake任务

时间:2012-07-31 09:52:25

标签: ruby-on-rails rake-task god

我有一个必须始终运行的rake任务。但有时这项任务可能会失败。我需要自动重启吗?我想我需要使用God gem或者还有其他方法可以解决这个问题?

3 个答案:

答案 0 :(得分:4)

这一切都取决于你的问题,但纯Ruby解决方案如何:

begin
  puts "Start"
  raise "BOOOM"
rescue Exception => e
  puts e.message
  sleep(2)
  retry
end

每次捕获异常时,只需重试开始阻止。

答案 1 :(得分:2)

在我的情况下God gem是我需要的,谢谢你的回答!

答案 2 :(得分:1)

如果您使用的是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/