Hvorfor Requests åpner flere tilkoblinger enn pool_maxsize
Bruk pool_block for en avgrenset pool, og legg til et applikasjonsbudsjett når grensen må dekke all trafikk gjennom en proxy.
Med standardverdien pool_block=False begrenser pool_maxsize tilkoblingene som beholdes i en pool, ikke hver samtidige tilkobling. Requests kan opprette ekstra og forkaste dem etterpå.
For en avgrenset pool som HTTPS-forespørslene til en eksisterende økt bruker:
from requests.adapters import HTTPAdapter
adapter = HTTPAdapter(
pool_connections=10,
pool_maxsize=4,
pool_block=True,
)
session.mount("https://", adapter)Monteringen velger HTTPS-mål-URL-er. HTTP-forespørsler bruker adapteret som er montert under http://.
| Inndata | Hva det styrer |
|---|---|
| pool_connections | Hvor mange pooler behandleren cacher |
| pool_maxsize | Tilkoblinger innenfor en pool |
| pool_block=True | Vente på en pooltilkobling i stedet for å opprette en ekstra |
Requests cacher også proxy-behandlere per proxy-URL. Disse verdiene utgjør ikke én samlet grense på tvers av en roterende liste med proxyer og mål. Bruk et samtidighetsbudsjett på applikasjonsnivå hvis kravet er at alt arbeid skal gå gjennom én mellommann.
Blokkering gjør frigivelse av svar avgjørende: bruk opp kroppene eller lukk strømmende svar slik at ventende arbeid kan fortsette. Requests-adapteren gir ikke en egen tidsavbrudd for denne pool-ventingen i oppsettet som vises.