HTTPステータスコードに基づくリトライ方法


import time
import requests
def make_request():
   response = requests.get("http://example.com/api")
   if response.status_code == 500:
       # エラーが発生した場合、指数バックオフを行う
       time.sleep(2)  # 2秒待つ
       make_request()  # リトライ
   else:
       # エラーが発生しなかった場合の処理
       print(response.text)
  • 429 Too Many Requests: このステータスコードは、クライアントがリクエストを頻繁に行いすぎることを示します。サーバーは制限をかけているため、リトライを行う前に一定時間待つ必要があります。以下にPythonの例を示します。

    import time
    import requests
    def make_request():
       response = requests.get("http://example.com/api")
       if response.status_code == 429:
           # リクエストが制限された場合、一定時間待つ
           wait_time = int(response.headers.get("Retry-After", 1))
           time.sleep(wait_time)
           make_request()  # リトライ
       else:
           # エラーが発生しなかった場合の処理
           print(response.text)
  • これらは一部のステータスコードに基づくリトライ方法の例です。他のHTTPステータスコードにも応じて独自のリトライロジックを実装することができます。重要なのは、適切なエラーハンドリングとリトライメカニズムを実装し、ユーザーエクスペリエンスを向上させることです。