Böyük proksi partiyaları üçün Python 3.14 Executor.map buffersize
Nəticələr gözləyərkən giriş sərfini dayandırmaq üçün Python 3.14 Executor.map buffersize-dan istifadə edin, max_workers-dən asılı olmayaraq.
max_workers=8 icra edən thread-ləri məhdudlaşdırır. Lakin böyük girişdə ayrıca göndərmə dövrünün hər endpoint üçün Future yaratmasının qarşısını almır.
Python 3.14 məhdudlaşdırılmış əvvəlcədən oxuma seçimi əlavə edir:
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 şəbəkə son tarixləri və təmizləmə ilə mövcud sinxron yoxlamadır; record_result onun qaytardığı müşahidəni idarə edir. 8 və 24 dəyərləri nümunə büdcələrdir. pulsuz proksi siyahısı endpoint-lər üçün ictimai namizədlər təqdim edir; hər ünvanla protokolunu saxlayın ki, check_proxy düzgün nəqliyyatdan istifadə edə bilsin.
Göndərmə buferi dolanda map nəticələr verilməyənə qədər iterable-ı istehlak etməyi dayandırır. Bu generatorlara da aiddir.
map hələ də giriş sırası ilə verir: yavaş erkən yoxlama tamamlanmış sonrakı nəticələri saxlayıb sonrakı girişi gecikdirə bilər. Tamamlanma sırası ilə emal üçün bitdikcə doldurulan açıq şəkildə məhdud futures dəsti istifadə edin.
Partiya nəticə verməyə davam etməlidirsə, gözlənilən şəbəkə nasazlıqlarını yoxlamanın içində həll edin. İdarə olunmayan istisna həmin element götürülərkən qaldırılır. ThreadPoolExecutor-un chunksize bu göndərmə büdcəsini vermir və əvvəlki Python versiyalarında buffersize yoxdur.