ठूला प्रोक्सी ब्याचका लागि 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 छैन।