【发布时间】:2012-07-31 09:52:25
【问题描述】:
我有一个必须始终运行的 rake 任务。但有时这项任务可能会失败。我需要自动重启吗?我想我需要使用God gem 或者有其他方法可以解决这个问题?
【问题讨论】:
标签: ruby-on-rails rake-task god
我有一个必须始终运行的 rake 任务。但有时这项任务可能会失败。我需要自动重启吗?我想我需要使用God gem 或者有其他方法可以解决这个问题?
【问题讨论】:
标签: ruby-on-rails rake-task god
这完全取决于你的问题,但是纯 Ruby 解决方案怎么样:
begin
puts "Start"
raise "BOOOM"
rescue Exception => e
puts e.message
sleep(2)
retry
end
每次捕获异常时重试开始阻塞。
【讨论】:
在我的情况下,God gem 是我需要的,谢谢你的回答!
【讨论】:
如果您使用的是 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/
【讨论】: