Waarom Requests meer verbindings as pool_maxsize oopmaak
Gebruik pool_block vir 'n begrensde poel, en voeg 'n toepassingsbegroting by wanneer die limiet al die verkeer deur 'n instaanbediener moet dek.
Met die verstek pool_block=False beperk pool_maxsize die behoue verbindings in 'n poel, nie elke gelyktydige verbinding nie. Requests kan ekstras skep en dit daarna weggooi.
Vir 'n begrensde poel wat deur die HTTPS-versoeke van 'n bestaande sessie gebruik word:
from requests.adapters import HTTPAdapter
adapter = HTTPAdapter(
pool_connections=10,
pool_maxsize=4,
pool_block=True,
)
session.mount("https://", adapter)Die montering kies HTTPS-bestemmings-URL's. HTTP-versoeke gebruik die adapter wat onder http:// gemonteer is.
| Inset | Wat dit beheer |
|---|---|
| pool_connections | Hoeveel poele die bestuurder kas |
| pool_maxsize | Verbindings binne een poel |
| pool_block=True | Wag vir 'n poelverbinding in plaas daarvan om 'n ekstra te skep |
Requests kas ook instaanbestuurders per instaan-URL. Hierdie waardes vorm nie een totale perk oor 'n roterende lys instaanbedieners en bestemmings nie. Gebruik 'n toepassingsvlak-gelyktydigheidsbegroting as die vereiste is dat alle werk deur een tussenganger gaan.
Blokkering maak die vrystelling van response noodsaaklik: verteer liggame of sluit stromende response sodat wagende werk kan voortgaan. Requests se adapter bied nie 'n aparte tydsbeperking vir hierdie poelwag in die getoonde opset nie.