Я работаю с 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
Можете ли вы вспомнить другие ошибки, которые нужно защитить, и повторите попытку? Это хорошо структурированный способ обработки ошибок? Какие реализации дизайна я должен рассмотреть?