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