Proč Requests otevírá více spojení než pool_maxsize
Pro omezený fond použijte pool_block a přidejte rozpočet aplikace, pokud limit musí pokrýt veškerý provoz přes proxy.
S výchozím pool_block=False omezuje pool_maxsize spojení uchovávaná ve fondu, nikoli každé souběžné spojení. Requests může vytvořit další a poté je zahodit.
Pro omezený fond používaný HTTPS požadavky existující relace:
from requests.adapters import HTTPAdapter
adapter = HTTPAdapter(
pool_connections=10,
pool_maxsize=4,
pool_block=True,
)
session.mount("https://", adapter)Připojení vybírá cílové URL pro HTTPS. HTTP požadavky používají adaptér připojený pod http://.
| Vstup | Co řídí |
|---|---|
| pool_connections | Kolik fondů správce ukládá do mezipaměti |
| pool_maxsize | Spojení v rámci jednoho fondu |
| pool_block=True | Čekat na spojení z fondu místo vytváření dalšího |
Requests také ukládá správce proxy podle URL proxy. Tyto hodnoty netvoří jeden celkový limit napříč rotujícím seznamem proxy a cílů. Pokud je požadavkem, aby veškerá práce procházela jedním prostředníkem, použijte rozpočet souběžnosti na úrovni aplikace.
Blokování činí uvolňování odpovědí nezbytným: spotřebujte těla nebo zavřete streamované odpovědi, aby čekající práce mohla pokračovat. Adaptér Requests v uvedeném uspořádání neposkytuje pro toto čekání na fond samostatný timeout.