buffersize Executor.map í Python 3.14 fyrir stóra proxy-hópa
Notaðu buffersize Executor.map í Python 3.14 til að stöðva inntöku á meðan niðurstöður bíða, óháð max_workers.
max_workers=8 takmarkar keyrsluþræðina. Það kemur þó ekki í veg fyrir að sérstök sendingarlykkja búi til Future fyrir hvern endapunkt í gríðarlegu inntaki.
Python 3.14 bætir við takmarkaðum forlestrarvalkosti:
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 er fyrirliggjandi samstillta prófunin með netfrestum og hreinsun; record_result meðhöndlar þá athugun sem hún skilar. Gildin 8 og 24 eru dæmi um fjárhagsáætlun. ókeypis proxylisti býður opinbera kandídata fyrir endapunkta; haltu siðareglum þeirra með hverju vistfangi svo check_proxy geti notað rétta flutninginn.
Þegar sendingarbiðminnið fyllist stöðvar map neyslu á endurtekningunni þar til niðurstöður eru afhentar. Þetta á einnig við um rafala.
map skilar enn í röð inntaks: hæg snemma prófun getur haldið áfram fullunnum seinni niðurstöðum og seinkað frekara inntaki. Fyrir vinnslu í röð lokunar skal nota skýrt takmarkað safn futures sem fyllt er á ný þegar þau ljúka.
Meðhöndlaðu væntanleg netmistök inni í prófuninni ef hópurinn á að halda áfram að skila niðurstöðum. Ómeðhöndluð undantekning er kastað þegar það atriði er sótt. chunksize í ThreadPoolExecutor veitir ekki þessa sendingaráætlun og eldri Python-útgáfur hafa ekki buffersize.