buffersize ya Executor.map katika Python 3.14 kwa makundi makubwa ya proksi
Tumia buffersize ya Executor.map katika Python 3.14 kusimamisha matumizi ya ingizo wakati matokeo yanasubiri, bila kutegemea max_workers.
max_workers=8 hupunguza nyuzi zinazotekeleza. Hata hivyo haizuii mzunguko tofauti wa kuwasilisha kuunda Future kwa kila kituo cha mwisho katika ingizo kubwa.
Python 3.14 huongeza chaguo la kusoma mbele lenye kikomo:
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 ni ukaguzi wa kisinkronia uliopo, pamoja na muda wa mtandao na usafishaji; record_result hushughulikia uchunguzi unaorejeshwa. Thamani 8 na 24 ni bajeti za mfano. orodha ya proksi bila malipo hutoa watahiniwa wa umma kwa vituo vya mwisho; hifadhi itifaki zao pamoja na kila anwani ili check_proxy itumie usafirishaji sahihi.
Wakati bafa ya kuwasilisha inajaa, map husimamisha matumizi ya kitu kinachorudiwa hadi matokeo yatolewe. Hii inatumika pia kwa jenereta.
map bado hutoa kwa mpangilio wa ingizo: ukaguzi wa mapema wa polepole unaweza kushikilia matokeo ya baadaye yaliyokamilika na kuchelewesha ingizo zaidi. Kwa usindikaji kwa mpangilio wa kukamilika, tumia seti ya futures yenye kikomo kilicho wazi ambayo hujazwa upya zinapokamilika.
Shughulikia hitilafu za mtandao zinazotarajiwa ndani ya ukaguzi ikiwa kundi linapaswa kuendelea kutoa matokeo. Hitilafu isiyoshughulikiwa huinuliwa wakati kipengele hicho kinapochukuliwa. chunksize katika ThreadPoolExecutor haitoi bajeti hii ya kuwasilisha, na matoleo ya awali ya Python hayana buffersize.