Zašto Requests otvara više veza od pool_maxsize
Koristite pool_block za ograničen skup veza i dodajte budžet aplikacije kada ograničenje mora pokriti sav promet kroz proxy.
Uz zadano 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čen skup koji koriste HTTPS zahtevi postojeće sesije:
from requests.adapters import HTTPAdapter
adapter = HTTPAdapter(
pool_connections=10,
pool_maxsize=4,
pool_block=True,
)
session.mount("https://", adapter)Montiranje bira HTTPS odredišne URL-ove. HTTP zahtevi koriste adapter montiran pod http://.
| Ulaz | Šta kontroliše |
|---|---|
| pool_connections | Koliko skupova menadžer kešira |
| pool_maxsize | Veze unutar jednog skupa |
| pool_block=True | Čekati vezu iz skupa umesto stvaranja dodatne |
Requests takođe kešira menadžere proksija prema URL-u proksija. Ove vrednosti ne čine jedno ukupno ograničenje preko rotirajuće liste proksija i odredišta. Koristite budžet paralelnosti na nivou aplikacije ako je zahtev da sav posao ide kroz jedan posrednik.
Blokiranje čini oslobađanje odgovora neophodnim: trošite tela ili zatvorite streaming odgovore kako bi posao koji čeka mogao da napreduje. Requests adapter ne nudi poseban tajmaut za ovo čekanje skupa u prikazanom rasporedu.