본문으로 바로가기
COMMUNITY모든 이야기

requests.Session() 사용 중 커넥션 타임아웃 발생 시 재시도 로직 구현 방법

빗방울 2026.10.31 00:51 2분 읽기 조회 8 · 추천 2

외부 API 수천 건 호출하는 자동화 스크립트 작성 중입니다. 간헐적으로 커넥션 타임아웃이 발생해 전체 프로세스가 멈춥니다.

코드:

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

session = requests.Session()
retry = Retry(total=3, backoff_factor=1, status_forcelist=[500, 502, 503, 504])
adapter = HTTPAdapter(max_retries=retry)
session.mount('https://', adapter)

url = "https://api.example.com/data"
for i in range(1000):
    try:
        resp = session.get(url, timeout=5)
        print(resp.status_code)
    except requests.exceptions.ConnectTimeout:
        print("Timeout occurred")

오류: requests.exceptions.ConnectTimeout: HTTPConnectionPool(host='api.example.com', port=443): Max retries exceeded with url

시도: HTTPAdapter의 Retry 설정 적용했으나 ConnectTimeout 단계에서는 작동 안 함.

질문: ConnectTimeout 발생 시에도 HTTPAdapter의 Retry 로직이 작동하게 하려면 어떻게 설정해야 합니까?

모든 이야기1455

가벼운 안부부터 깊은 생각까지, 함께 나눠요.

글쓰기
총 1455개의 이야기
댓글