【发布时间】:2011-09-18 22:22:24
【问题描述】:
我正在使用 Twitter Gem 并创建了一个长时间运行的 ruby 任务。我希望它能够处理常见错误,因此我希望建立一个我应该考虑防止的错误列表(例如失败的鲸鱼 500)
这是我的代码在其中运行的开始/结束循环:
Begin
# My (omitted) very long ruby task
# filled with Twitter API requests
rescue Errno::ENOENT
sleep(5)
logger.info "ENOENT error - attempting to retry"
retry
rescue Errno::ETIMEDOUT
sleep(5)
logger.info " Operation timed out - attempting to retry"
retry
rescue Errno::ECONNRESET
sleep(5)
logger.info "Connection reset by peer - attempting to retry"
retry
end
你能想到任何其他需要保护和重试的错误吗?这是一种处理错误的结构良好的方法吗?我应该考虑哪些设计实现?
【问题讨论】: