> 백엔드 개발 > 파이썬 튜토리얼 > 'requests' 라이브러리가 지수 백오프로 자동 재시도를 지원하는 TIL

'requests' 라이브러리가 지수 백오프로 자동 재시도를 지원하는 TIL

Barbara Streisand
풀어 주다: 2024-12-27 15:00:15
원래의
293명이 탐색했습니다.

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

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿