Kāpēc Requests atver vairāk savienojumu nekā pool_maxsize
Izmantojiet pool_block ierobežotai kopai un pievienojiet lietojumprogrammas līmeņa budžetu, ja ierobežojumam jāaptver visa satiksme caur starpniekserveri.
Ar noklusējuma pool_block=False pool_maxsize ierobežo kopā paturētos savienojumus, nevis katru vienlaicīgo savienojumu. Requests var izveidot papildu savienojumus un pēc tam tos izmest.
Ierobežotai kopai, ko izmanto esošas sesijas HTTPS pieprasījumi:
from requests.adapters import HTTPAdapter
adapter = HTTPAdapter(
pool_connections=10,
pool_maxsize=4,
pool_block=True,
)
session.mount("https://", adapter)Piemontēšana izvēlas HTTPS mērķa URL. HTTP pieprasījumi izmanto adapteri, kas piemontēts pie http://.
| Ievade | Ko tas kontrolē |
|---|---|
| pool_connections | Cik kopu pārvaldnieks glabā kešatmiņā |
| pool_maxsize | Savienojumi vienā kopā |
| pool_block=True | Gaidīt kopas savienojumu, nevis veidot papildu |
Requests kešatmiņā glabā arī starpniekserveru pārvaldniekus pēc starpniekservera URL. Šīs vērtības neveido vienu kopēju ierobežojumu mainīgam starpniekserveru un mērķu sarakstam. Izmantojiet lietojumprogrammas līmeņa vienlaicības budžetu, ja prasība ir, lai viss darbs ietu caur vienu starpnieku.
Bloķēšana padara atbilžu atbrīvošanu obligātu: patērējiet saturu vai aizveriet straumēšanas atbildes, lai gaidošais darbs varētu turpināties. Parādītajā konfigurācijā Requests adapters nenodrošina atsevišķu šīs kopas gaidīšanas taimautu.