Үлкен прокси топтамалары үшін Python 3.14 Executor.map buffersize
Нәтижелер күтіп тұрғанда кіріс тұтынуын тоқтату үшін Python 3.14 Executor.map buffersize қолданыңыз, 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 жиынын пайдаланыңыз.
Топтама нәтиже беруді жалғастыруы керек болса, күтілетін желілік ақауларды тексерудің ішінде өңдеңіз. Өңделмеген ерекше жағдай сол элемент алынғанда көтеріледі. ThreadPoolExecutor-дің chunksize бұл жіберу бюджетін бермейді, ал Python-ның ертерек нұсқаларында buffersize жоқ.