Iġbor kull riżultat mit-talbiet proxy urllib3 konkorrenti
Aqsam ProxyManager konfigurat bejn il-ħjut tax-xogħol, ikkonsma l-iteratur tar-riżultati tal-eżekutur u odda l-bejn iż-żamma tal-pool u limitu tal-konnessjoni.
Li toħloq pool ta' ħaddiema ma jagħtix lill-sejjaħ il-paġni mniżżla. Żomm u kkonsma l-valuri li jirritorna x-xogħol sottomess:
from concurrent.futures import ThreadPoolExecutor
import urllib3
manager = urllib3.ProxyManager(
'http://proxy.example:8080',
maxsize=4,
block=True,
)
def fetch(url):
response = manager.request(
'GET', url, timeout=urllib3.Timeout(connect=5, read=15),
)
return url, response.status, response.data
try:
with ThreadPoolExecutor(max_workers=4) as workers:
results = list(workers.map(fetch, urls))
finally:
manager.clear()Dan il-framment jassumi lista limitata ta' URL u daqsijiet ta' risposta ordinarji. Għal verifiki ta' URL pubbliċi permessi mingħajr awtentikazzjoni tal-proxy, kandidat mill-lista tal-proxy HTTP jista' jissostitwixxi l-endpoint HTTP eżempju tal-maniġer. Kull riżultat jinkludi l-URL tiegħu sabiex is-sejjaħ jista' jassoċja l-istat u l-korp mat-talba t-tajba. map jirritorna r-riżultati fl-ordni tal-input; eċċezzjoni f'ħaddiem titqajjem meta dak ir-riżultat jiġi mistqarr.
Il-ProxyManager konfigurat għandu l-pooling tal-konnessjonijiet għat-talbiet. Bil-mod ta' risposta preload bil-prestazzjoni użat hawn, urllib3 jaqra l-korp u jirritorna l-konnessjoni lejn il-pool tiegħu. Verżjoni streaming tkun teħtieġ konsum espliċitu u ħelsien tal-konnessjoni.
maxsize normalment jikkontrolla l-konnessjonijiet riużabbli miżmuma, mhux limitu iebes fuq kull socket miftuħa. block=True jbiddel l-imġiba rilevanti tal-pool sabiex is-sejjħa jistennew konnessjoni ħielsa minflok ma jiftħu oħrajn addizzjonali lil hinn mil-limitu ta' dak il-pool.
L-għadd ta' ħaddiema jillimita s-sejħiet konkorrenti f'dan l-eżempju. B'ħafna destinazzjonijiet, it-tqassim tal-pool u r-rotta użata għall-mini HTTPS huma wkoll importanti; konfigurazzjoni għal pool wieħed m'għandhiex tiġi deskritta bħala kwota globali waħda ta' sockets għal kull host.