사용자 정의된 어댑터를 사용하고 모든 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' 라이브러리가 지수 백오프로 자동 재시도를 지원하는 TIL의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!