Por que Requests abre máis conexións que pool_maxsize
Use pool_block para un grupo limitado e engada un orzamento de aplicación cando o límite deba cubrir todo o tráfico a través dun proxy.
Co valor predeterminado pool_block=False, pool_maxsize limita as conexións retidas nun grupo, non todas as conexións simultáneas. Requests pode crear conexións adicionais e despois descartalas.
Para un grupo limitado que usan as solicitudes HTTPS dunha sesión existente:
from requests.adapters import HTTPAdapter
adapter = HTTPAdapter(
pool_connections=10,
pool_maxsize=4,
pool_block=True,
)
session.mount("https://", adapter)A montaxe selecciona os URL de destino HTTPS. As solicitudes HTTP usan o adaptador montado en http://.
| Entrada | Que controla |
|---|---|
| pool_connections | Cantos grupos garda o xestor na caché |
| pool_maxsize | Conexións dentro dun grupo |
| pool_block=True | Esperar unha conexión do grupo en vez de crear unha adicional |
Requests tamén garda na caché os xestores de proxy por URL de proxy. Estes valores non forman un único límite total para unha lista rotativa de proxies e destinos. Use un orzamento de concorrencia a nivel de aplicación se o requisito é que todo o traballo pase por un único intermediario.
O bloqueo fai imprescindible liberar as respostas: consuma os corpos ou peche as respostas en streaming para que o traballo en espera poida avanzar. O adaptador de Requests non ofrece un tempo de espera separado para esta espera do grupo na disposición mostrada.