Miksi Requests avaa enemmän yhteyksiä kuin pool_maxsize
Käytä pool_blockia rajatussa altaassa ja lisää sovellustason budjetti, kun rajan on katettava kaikki välityspalvelimen kautta kulkeva liikenne.
Oletusarvolla pool_block=False pool_maxsize rajoittaa altaassa säilytettäviä yhteyksiä, ei jokaista samanaikaista yhteyttä. Requests voi luoda ylimääräisiä ja hylätä ne sen jälkeen.
Rajatulle altaalle, jota olemassa olevan istunnon HTTPS-pyynnöt käyttävät:
from requests.adapters import HTTPAdapter
adapter = HTTPAdapter(
pool_connections=10,
pool_maxsize=4,
pool_block=True,
)
session.mount("https://", adapter)Liittäminen valitsee HTTPS-kohde-URL-osoitteet. HTTP-pyynnöt käyttävät adapteria, joka on liitetty http://-kohtaan.
| Syöte | Mitä se ohjaa |
|---|---|
| pool_connections | Kuinka monta allasta hallinta pitää välimuistissa |
| pool_maxsize | Yhteydet altaan sisällä |
| pool_block=True | Odota altaan yhteyttä sen sijaan, että luot ylimääräisen |
Requests pitää välimuistissa myös välityspalvelinten hallintoja välityspalvelimen URL-osoitteen mukaan. Nämä arvot eivät muodosta yhtä kokonaisrajaa pyörivälle välityspalvelinten ja kohteiden luettelolle. Käytä sovellustason rinnakkaisuusbudjettia, jos vaatimuksena on, että kaikki työ kulkee yhden välittäjän kautta.
Estäminen tekee vastausten vapauttamisesta välttämätöntä: kuluta rungot tai sulje suoratoistovastaukset, jotta odottava työ voi edetä. Requestsin adapteri ei tarjoa erillistä aikakatkaisua tälle allasodottelulle esitetyssä järjestelyssä.