Prečo Requests otvára viac spojení ako pool_maxsize
Pre obmedzený fond použite pool_block a pridajte rozpočet aplikácie, ak limit musí pokryť všetku prevádzku cez proxy.
Pri predvolenom pool_block=False obmedzuje pool_maxsize spojenia uchovávané vo fonde, nie každé súbežné spojenie. Requests môže vytvoriť ďalšie a potom ich zahodiť.
Pre obmedzený fond, ktorý používajú HTTPS požiadavky existujúcej relácie:
from requests.adapters import HTTPAdapter
adapter = HTTPAdapter(
pool_connections=10,
pool_maxsize=4,
pool_block=True,
)
session.mount("https://", adapter)Pripojenie vyberá cieľové URL pre HTTPS. HTTP požiadavky používajú adaptér pripojený pod http://.
| Vstup | Čo riadi |
|---|---|
| pool_connections | Koľko fondov správca ukladá do vyrovnávacej pamäte |
| pool_maxsize | Spojenia v rámci jedného fondu |
| pool_block=True | Čakať na spojenie z fondu namiesto vytvárania ďalšieho |
Requests tiež ukladá správcov proxy podľa URL proxy. Tieto hodnoty netvoria jeden celkový limit naprieč rotujúcim zoznamom proxy a cieľov. Ak je požiadavkou, aby všetka práca prechádzala jedným sprostredkovateľom, použite rozpočet súbežnosti na úrovni aplikácie.
Blokovanie robí uvoľňovanie odpovedí nevyhnutným: spotrebujte telá alebo zatvorte streamované odpovede, aby čakajúca práca mohla pokračovať. Adaptér Requests v uvedenom usporiadaní neposkytuje pre toto čakanie na fond samostatný časový limit.