ホームページ > バックエンド開発 > Python チュートリアル > 「requests」ライブラリが指数バックオフによる自動再試行をサポートするまで

「requests」ライブラリが指数バックオフによる自動再試行をサポートするまで

Barbara Streisand
リリース: 2024-12-27 15:00:15
オリジナル
294 人が閲覧しました

TIL that the `requests` library supports automatic retries with exponential backoff

カスタマイズされたアダプターを使用し、すべての HTTP/HTTPS リクエストに対して指数バックオフ係数を使用して複数の再試行を強制できます。以下の例を参照してください:

import requests
from requests import adapters
from urllib3.util import Retry

# Create a transport adapter with a custom retry strategy.
retries = Retry(
    total=3,
    backoff_factor=3,
    status_forcelist=[500, 502, 503, 504]
)
adapter = adapters.HTTPAdapter(max_retries=retries)

# Ensure adapter is used for both HTTP and HTTPS requests.
session = requests.Session()
session.mount('https://', adapter)
session.mount('http://', adapter)

# Testing the retry mechanism
response = session.get("http://httpbin.org/status/500")
ログイン後にコピー

これにより、以下のエラーが返されます:

RetryError: HTTPConnectionPool(host='httpbin.org', port=80): Max retries exceeded with url: /status/500 (Caused by ResponseError('too many 500 error responses'))
ログイン後にコピー

残念なことに、上記のメカニズムが何回再試行を試みたかを知る方法はないようで、すべての試行が終了した場合にのみ確認できるようです

参照

https://stackoverflow.com/a/47475019/4477547

以上が「requests」ライブラリが指数バックオフによる自動再試行をサポートするまでの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート