カスタマイズされたアダプターを使用し、すべての 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 サイトの他の関連記事を参照してください。