我正在使用 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
您能想到要保护和重试的任何其他错误吗?这是一种处理错误的结构良好的方法吗?我应该考虑哪些设计实现?