1

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

4

3 回答 3

4

这完全取决于您的问题,但是纯 Ruby 解决方案如何:

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

每次捕获异常时重试开始阻塞。

于 2012-07-31T13:52:38.837 回答
2

就我而言,我需要的是上帝的宝石,谢谢您的回答!

于 2012-09-05T14:15:35.097 回答
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/

于 2012-07-31T10:02:13.687 回答