Zašto Requests otvara više veza od pool_maxsize
Upotrijebite pool_block za ograničeni skup veza i dodajte proračun aplikacije kada ograničenje mora pokriti sav promet kroz proxy.
Uz zadani pool_block=False, pool_maxsize ograničava zadržane veze u skupu, a ne svaku istovremenu vezu. Requests može stvoriti dodatne veze i zatim ih odbaciti.
Za ograničeni skup koji koriste HTTPS zahtjevi postojeće sesije:
from requests.adapters import HTTPAdapter
adapter = HTTPAdapter(
pool_connections=10,
pool_maxsize=4,
pool_block=True,
)
session.mount("https://", adapter)Montiranje odabire HTTPS odredišne URL-ove. HTTP zahtjevi koriste adapter montiran pod http://.
| Ulaz | Što kontrolira |
|---|---|
| pool_connections | Koliko skupova upravitelj drži u predmemoriji |
| pool_maxsize | Veze unutar jednog skupa |
| pool_block=True | Čekati vezu iz skupa umjesto stvaranja dodatne |
Requests također drži u predmemoriji upravitelje proxyja prema URL-u proxyja. Te vrijednosti ne čine jedno ukupno ograničenje preko rotirajućeg popisa proxyja i odredišta. Upotrijebite proračun paralelnosti na razini aplikacije ako je zahtjev da sav posao ide kroz jedan posrednik.
Blokiranje čini oslobađanje odgovora nužnim: konzumirajte tijela ili zatvorite streaming odgovore kako bi posao koji čeka mogao napredovati. Adapter Requests ne nudi zasebno vremensko ograničenje za ovo čekanje skupa u prikazanom rasporedu.