Cu valoarea implicită pool_block=False, pool_maxsize limitează conexiunile păstrate într-un pool, nu fiecare conexiune simultană. Requests poate crea unele suplimentare și apoi le poate arunca.

Pentru un pool limitat folosit de cererile HTTPS ale unei sesiuni existente:

from requests.adapters import HTTPAdapter

adapter = HTTPAdapter(
    pool_connections=10,
    pool_maxsize=4,
    pool_block=True,
)
session.mount("https://", adapter)

Montarea selectează URL-urile destinație HTTPS. Cererile HTTP folosesc adaptorul montat sub http://.

IntrareCe controlează
pool_connectionsCâte pool-uri păstrează managerul în cache
pool_maxsizeConexiuni în interiorul unui pool
pool_block=TrueAșteptarea unei conexiuni din pool în loc de a crea una suplimentară

Requests păstrează în cache și managerii de proxy după URL-ul proxy-ului. Aceste valori nu formează un plafon total unic pentru o listă rotativă de proxy-uri și destinații. Folosiți un buget de concurență la nivel de aplicație dacă cerința este ca toată munca să treacă printr-un singur intermediar.

Blocarea face esențială eliberarea răspunsurilor: consumați corpurile sau închideți răspunsurile în streaming pentru ca munca în așteptare să poată continua. Adaptorul Requests nu oferă un timeout separat pentru această așteptare a pool-ului în configurația prezentată.

Articole similare