प्रोक्सी पूलमा धेरै फरक क्षमता भएका अन्त्यबिन्दुहरू हुन सक्छन्। सम्पूर्ण अनुप्रयोगमा पचास कार्यहरूलाई अनुमति दिनुले तीमध्ये उनन्चासलाई एउटै प्रोक्सी छनोट गर्नबाट रोक्दैन।

यदि नीति “प्रत्येक छनोट गरिएको प्रोक्सीमार्फत बढीमा चार चलिरहेका कार्यहरू” हो भने, त्यो नीति सिधै व्यक्त गर्नुहोस्। प्रत्येक प्रोक्सी पहिचानको लागि सेमाफोर राख्नुहोस्, र प्रोक्सीको क्षमता खपत गर्ने कामको वरिपरि त्यो प्राप्त गर्नुहोस्।

limits = {proxy: asyncio.Semaphore(4) for proxy in proxy_urls}

async def fetch(session, proxy, url):
    async with limits[proxy]:
        async with session.get(url, proxy=proxy) as response:
            return await response.read()

यो रेखाचित्रले asyncio आयात भइसकेको र प्रोक्सी URL हरू प्रमाणित भइसकेको मान्छ। अनुमत सार्वजनिक-प्रोक्सी मार्गमा सार्वजनिक अनुरोधहरूका लागि, HTTP प्रोक्सी सूची ले aiohttp का प्रोक्सी URL का लागि उम्मेदवारहरू प्रदान गर्दछ। वास्तविक अनुप्रयोगले आफ्नै अनुरोध समयसीमा पनि सेट गर्नुपर्छ र कति प्रतिक्रिया डेटा चाहिन्छ भनी निर्णय गर्नुपर्छ। ठूलो फाइल पूर्ण रूपमा मेमोरीमा पढ्नु अलग संसाधन निर्णय हो।

महँगो भागको लागि अनुमति राख्नुहोस्

प्रतिक्रिया हेडरहरू आउने बित्तिकै सेमाफोर छोड्दा इच्छित सीमा असफल हुन सक्छ। स्ट्रिमिङ बडीले त्यसपछि पनि लामो समय जडान प्रयोग गरिरहन सक्छ। बडी खपत नभएसम्म वा अनुप्रयोगको कार्यप्रवाह अनुसार प्रतिक्रिया बन्द नभएसम्म अनुमति राख्नुहोस्।

नेस्टेड सन्दर्भ प्रबन्धकहरूले अपवाद वा रद्दीकरणले कार्य छोड्दा सफाइलाई देखिने बनाउँछन्। हातले प्राप्त गर्ने र सफल फंक्शनको तलमात्र छोड्ने कामबाट बच्नुहोस्।

जडान सीमाहरूले अर्को प्रश्नको जवाफ दिन्छन्

aiohttp का कनेक्टर सीमाहरूले कनेक्टरका कागजात गरिएका नियमहरू अनुसार जडानहरू सीमित गर्छन्। ती अनुप्रयोग सेमाफोरको साथमा उपयोगी रहन्छन्। प्रति-गन्तव्य जडान सीमाले केवल नामबाट एउटा प्रोक्सीलाई तोकिएका सबै गन्तव्यहरूले साझा गर्ने बजेट व्यक्त गर्दैन।

समवर्तीलाई अनुरोध दरबाट पनि छुट्याउनुहोस्। चार दीर्घकालीन अनुरोध र चार धेरै छोटा अनुरोधले समान समवर्ती भत्ता प्रयोग गर्छन् तर फरक प्रति-सेकेन्ड-अनुरोध दर उत्पादन गर्छन्। दर नीति भएको सेवालाई गति नियन्त्रण वा अलग दर सीमितकर्ता आवश्यक पर्न सक्छ।

लग र मेट्रिक्सका लागि स्थिर, गोप्य नभएको प्रोक्सी पहिचानकर्ता छान्नुहोस्। यदि दुई प्रमाण-पत्र भएका URL ले एउटै क्षमता पूललाई सन्दर्भ गर्छन् भने, तिनीहरूले एउटै बजेट साझा गर्नुपर्छ कि भनी निर्णय गर्नुहोस्। यसको विपरीत, फरक पोर्ट वा खाताहरूले अलग सीमाहरू प्रतिनिधित्व गर्न सक्छन् जब अपरेटरले तिनीहरूलाई त्यसरी कागजात गर्छ।

जब थ्रुपुट घट्छ, काम कहाँ पर्खिरहेको छ जाँच्नुहोस्: तपाईंको सेमाफोर, कनेक्टर, प्रोक्सी जडान सेटअप, वा प्रतिक्रिया पढाइ। सबै सीमाहरू एकैपटक बढाउँदा त्यो भिन्नता गर्न गाह्रो हुन्छ र लामलाई तपाईंले नियन्त्रण नगर्ने प्रोक्सीमा सार्न सक्छ।

सम्बन्धित लेखहरू