С подразбиращото се pool_block=False pool_maxsize ограничава задържаните връзки в един пул, а не всяка едновременна връзка. Requests може да създава допълнителни и след това да ги изхвърля.

За ограничен пул, използван от HTTPS заявките на съществуваща сесия:

from requests.adapters import HTTPAdapter

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

Монтирането избира URL адресите на HTTPS дестинациите. HTTP заявките използват адаптера, монтиран под http://.

ВходКакво контролира
pool_connectionsКолко пула кешира мениджърът
pool_maxsizeВръзки в рамките на един пул
pool_block=TrueИзчакване за връзка от пула вместо създаване на допълнителна

Requests също кешира прокси мениджъри по URL на проксито. Тези стойности не образуват единен общ лимит за въртящ се списък от проксита и дестинации. Използвайте бюджет за паралелност на ниво приложение, ако изискването е цялата работа да минава през един посредник.

Блокирането прави освобождаването на отговорите задължително: консумирайте телата или затваряйте поточните отговори, за да може чакащата работа да продължи. Адаптерът на Requests не предоставя отделен таймаут за това изчакване на пула в показаната схема.

Подобни статии