Zakaj Requests odpre več povezav kot pool_maxsize
Uporabite pool_block za omejen nabor in dodajte proračun na ravni aplikacije, ko mora omejitev pokriti ves promet skozi proxy.
S privzeto nastavitvijo pool_block=False pool_maxsize omejuje povezave, ki se hranijo v naboru, ne vsake sočasne povezave. Requests lahko ustvari dodatne in jih nato zavrže.
Za omejen nabor, ki ga uporabljajo zahteve HTTPS obstoječe seje:
from requests.adapters import HTTPAdapter
adapter = HTTPAdapter(
pool_connections=10,
pool_maxsize=4,
pool_block=True,
)
session.mount("https://", adapter)Priklop izbere ciljne URL-je HTTPS. Zahteve HTTP uporabljajo adapter, priklopljen pod http://.
| Vnos | Kaj nadzoruje |
|---|---|
| pool_connections | Koliko naborov upravitelj shrani v predpomnilnik |
| pool_maxsize | Povezave znotraj enega nabora |
| pool_block=True | Čakanje na povezavo iz nabora namesto ustvarjanja dodatne |
Requests shranjuje v predpomnilnik tudi upravitelje proxyjev po URL-ju proxyja. Te vrednosti ne tvorijo ene skupne omejitve za spreminjajoči se seznam proxyjev in ciljev. Uporabite proračun sočasnosti na ravni aplikacije, če je zahteva, da gre vse delo skozi enega posrednika.
Blokiranje naredi sproščanje odgovorov nujno: porabite telesa ali zaprite pretočne odgovore, da lahko čakajoče delo nadaljuje. Adapter Requests v prikazani postavitvi ne zagotavlja ločenega časovnega omejitve za to čakanje na nabor.