기본값 pool_block=False에서는 pool_maxsize이 풀에 유지되는 연결을 제한할 뿐, 동시에 열리는 모든 연결을 제한하지는 않습니다. Requests는 추가 연결을 만들고 나중에 버릴 수 있습니다.

기존 세션의 HTTPS 요청이 사용하는 제한된 풀의 경우:

from requests.adapters import HTTPAdapter

adapter = HTTPAdapter(
    pool_connections=10,
    pool_maxsize=4,
    pool_block=True,
)
session.mount("https://", adapter)

마운트는 HTTPS 대상 URL을 선택합니다. HTTP 요청은 http:// 아래에 마운트된 어댑터를 사용합니다.

입력제어하는 대상
pool_connections관리자가 캐시하는 풀 수
pool_maxsize한 풀 안의 연결 수
pool_block=True추가 연결을 만드는 대신 풀 연결을 기다림

Requests는 프록시 URL별로 프록시 관리자도 캐시합니다. 이 값들은 순환하는 프록시와 대상 목록 전체에 대한 하나의 총상한을 이루지 않습니다. 모든 작업이 하나의 중개자를 거쳐야 한다는 요구 사항이 있다면 애플리케이션 수준의 동시성 예산을 사용하세요.

블로킹을 사용하면 응답 해제가 필수입니다. 본문을 끝까지 읽거나 스트리밍 응답을 닫아 대기 중인 작업이 진행될 수 있게 하세요. 제시된 구성에서 Requests의 어댑터는 이 풀 대기에 별도의 타임아웃을 제공하지 않습니다.

관련 글