ਪ੍ਰੌਕਸੀ ਪੂਲ ਵਿੱਚ ਬਹੁਤ ਵੱਖਰੀ ਸਮਰੱਥਾ ਵਾਲੇ ਐਂਡਪੁਆਇੰਟ ਹੋ ਸਕਦੇ ਹਨ। ਪੂਰੀ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਪੰਜਾਹ ਕਾਰਵਾਈਆਂ ਦੀ ਆਗਿਆ ਦੇਣਾ ਉਨ੍ਹਾਂ ਵਿੱਚੋਂ ਉਣੰਜਾ ਨੂੰ ਇੱਕੋ ਪ੍ਰੌਕਸੀ ਚੁਣਨ ਤੋਂ ਨਹੀਂ ਰੋਕਦਾ।

ਜੇ ਨੀਤੀ “ਹਰ ਚੁਣੀ ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ ਵੱਧ ਤੋਂ ਵੱਧ ਚਾਰ ਚੱਲ ਰਹੀਆਂ ਕਾਰਵਾਈਆਂ” ਹੈ, ਤਾਂ ਉਹ ਨੀਤੀ ਸਿੱਧੀ ਤਰ੍ਹਾਂ ਪ੍ਰਗਟ ਕਰੋ। ਹਰ ਪ੍ਰੌਕਸੀ ਪਛਾਣ ਲਈ ਇੱਕ ਸੈਮਾਫੋਰ ਰੱਖੋ, ਅਤੇ ਪ੍ਰੌਕਸੀ ਦੀ ਸਮਰੱਥਾ ਵਰਤਣ ਵਾਲੇ ਕੰਮ ਦੁਆਲੇ ਇਸ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰੋ।

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 ਇੱਕੋ ਸਮਰੱਥਾ ਪੂਲ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ, ਤਾਂ ਫੈਸਲਾ ਕਰੋ ਕਿ ਉਹ ਇੱਕ ਬਜਟ ਸਾਂਝਾ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਜਾਂ ਨਹੀਂ। ਇਸ ਦੇ ਉਲਟ, ਵੱਖਰੇ ਪੋਰਟ ਜਾਂ ਖਾਤੇ ਵੱਖਰੀਆਂ ਸੀਮਾਵਾਂ ਦਰਸਾ ਸਕਦੇ ਹਨ ਜਦੋਂ ਆਪਰੇਟਰ ਉਨ੍ਹਾਂ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਦਸਤਾਵੇਜ਼ੀ ਕਰਦਾ ਹੈ।

ਜਦੋਂ ਥ੍ਰੂਪੁਟ ਘਟਦਾ ਹੈ, ਤਾਂ ਜਾਂਚੋ ਕਿ ਕੰਮ ਕਿੱਥੇ ਉਡੀਕ ਰਿਹਾ ਹੈ: ਤੁਹਾਡਾ ਸੈਮਾਫੋਰ, ਕਨੈਕਟਰ, ਪ੍ਰੌਕਸੀ ਕਨੈਕਸ਼ਨ ਸੈੱਟਅੱਪ, ਜਾਂ ਜਵਾਬ ਪੜ੍ਹਨਾ। ਇੱਕੋ ਸਮੇਂ ਸਾਰੀਆਂ ਸੀਮਾਵਾਂ ਵਧਾਉਣਾ ਉਸ ਫ਼ਰਕ ਨੂੰ ਔਖਾ ਬਣਾਉਂਦਾ ਹੈ ਅਤੇ ਕਤਾਰ ਨੂੰ ਅਜਿਹੀ ਪ੍ਰੌਕਸੀ ਵਿੱਚ ਲੈ ਜਾ ਸਕਦਾ ਹੈ ਜੋ ਤੁਸੀਂ ਨਿਯੰਤਰਿਤ ਨਹੀਂ ਕਰਦੇ।

ਸੰਬੰਧਿਤ ਲੇਖ