buffersize у Executor.map из Python 3.14 за велике серије проксија
Користите buffersize у Executor.map из Python 3.14 да зауставите трошење улаза док резултати чекају, независно од max_workers.
max_workers=8 ограничава извршне нити. Али не спречава засебну петљу предаје да створи Future за сваку крајњу тачку у огромном улазу.
Python 3.14 додаје ограничену опцију унапредног читања:
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 је постојећа синхрона провера са мрежним роковима и чишћењем; record_result обрађује њено враћено опажање. Вредности 8 и 24 су примерни буџети. бесплатна листа проксија нуди јавне кандидате за крајње тачке; чувајте њихов протокол уз сваку адресу како би check_proxy могао да користи исправан пренос.
Када се међусмештач предаје напуни, map паузира трошење итерабилног објекта док се резултати не врате. То важи и за генераторе.
map и даље враћа редоследом улаза: спора рана провера може задржати довршене касније резултате и одложити даљи улаз. За обраду редоследом довршетка користите изричито ограничен скуп futures који се допуњује како завршавају.
Решавајте очекиване мрежне кварове унутар провере ако серија треба да настави да враћа резултате. Необрађени изузетак се подиже када се тај елемент дохвати. chunksize у ThreadPoolExecutor не даје тај буџет предаје, а старије верзије Python-а немају buffersize.