私はTwitterGemを使用しており、長時間実行される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
保護して再試行する他のエラーについて考えられますか?これはエラーを処理するための適切に構造化された方法ですか?考慮すべきいくつかの設計実装は何ですか?