buffersize i Executor.map në Python 3.14 për tufa të mëdha proxy
Përdorni buffersize të Executor.map në Python 3.14 për të ndaluar konsumin e hyrjes ndërsa rezultatet presin, pavarësisht nga max_workers.
max_workers=8 kufizon fijet ekzekutuese. Megjithatë nuk pengon një cikël të veçantë dërgimi të krijojë një Future për çdo pikë fundore në një hyrje të madhe.
Python 3.14 shton një opsion të kufizuar leximi përpara:
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 është kontrolli sinkron ekzistues, me afate rrjeti dhe pastrim; record_result trajton vëzhgimin që kthen. Vlerat 8 dhe 24 janë buxhete shembull. listë proxy falas ofron kandidatë publikë për pikat fundore; mbani protokollin e tyre me çdo adresë që check_proxy të përdorë transportin e duhur.
Kur buferi i dërgimit mbushet, map ndalon konsumin e iterueshmes derisa të jepen rezultate. Kjo vlen edhe për gjeneratorët.
map ende jep sipas rendit të hyrjes: një kontroll i ngadaltë i hershëm mund të mbajë rezultate të mëvonshme të përfunduara dhe të vonojë hyrjen e mëtejshme. Për përpunim sipas rendit të përfundimit, përdorni një grup futures të kufizuar në mënyrë të qartë që rimbushet ndërsa përfundojnë.
Trajtoni dështimet e pritura të rrjetit brenda kontrollit nëse tufa duhet të vazhdojë të japë rezultate. Një përjashtim i patrajtuar hidhet kur ai element merret. chunksize në ThreadPoolExecutor nuk ofron këtë buxhet dërgimi, dhe versionet e mëparshme të Python nuk kanë buffersize.