Із типовим 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)

Монтування вибирає URL-адреси призначення HTTPS. HTTP-запити використовують адаптер, змонтований під http://.

ВхідЩо це контролює
pool_connectionsСкільки пулів кешує менеджер
pool_maxsizeЗ'єднання в межах одного пулу
pool_block=TrueЧекати на з'єднання з пулу замість створення додаткового

Requests також кешує менеджери проксі за URL проксі. Ці значення не утворюють єдиного загального ліміту для змінного списку проксі та призначень. Використовуйте бюджет паралельності на рівні застосунку, якщо вимога полягає в тому, щоб уся робота йшла через один посередник.

Блокування робить звільнення відповідей обов'язковим: вичитуйте тіла або закривайте потокові відповіді, щоб очікувана робота могла продовжуватися. Адаптер Requests у показаній конфігурації не надає окремого тайм-ауту для цього очікування пулу.

Схожі статті