Python 3.14 Executor.map buffersize za velike serije proxyja
Upotrijebite Python 3.14 Executor.map buffersize da zaustavite trošenje ulaza dok rezultati čekaju, neovisno o max_workers.
max_workers=8 ograničava izvršne dretve. Ali ne sprječava zasebnu petlju predaje da stvori Future za svaku krajnju točku u golemom ulazu.
Python 3.14 dodaje ograničenu opciju unaprijednog čitanja:
from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor(max_workers=8) as executor:
for result in executor.map(check_proxy, endpoints, buffersize=24):
record_result(result)check_proxy postojeća je sinkrona provjera s mrežnim rokovima i čišćenjem; record_result obrađuje njezino vraćeno opažanje. Vrijednosti 8 i 24 primjerni su proračuni. besplatan popis proxyja nudi javne kandidate za krajnje točke; čuvajte njihov protokol uz svaku adresu kako bi check_proxy mogao koristiti ispravan prijenos.
Kad se međuspremnik predaje napuni, map pauzira trošenje iterabilnog objekta dok se rezultati ne vrate. To vrijedi i za generatore.
map i dalje vraća redoslijedom ulaza: spora rana provjera može zadržati dovršene kasnije rezultate i odgoditi daljnji ulaz. Za obradu redoslijedom dovršetka upotrijebite izričito ograničen skup futuresa koji se dopunjuje kako završavaju.
Riješite očekivane mrežne kvarove unutar provjere ako serija treba nastaviti vraćati rezultate. Neobrađena se iznimka podiže kad se taj element dohvati. chunksize u ThreadPoolExecutoru ne daje taj proračun predaje, a starije verzije Pythona nemaju buffersize.