විශාල ප්රොක්සි කාණ්ඩ සඳහා 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 නොමැත.