ప్రాక్సీ పూల్‌లో చాలా భిన్న సామర్థ్యాల ఎండ్‌పాయింట్లు ఉండవచ్చు. మొత్తం అప్లికేషన్‌లో యాభై కార్యకలాపాలను అనుమతించడం వాటిలో నలభై తొమ్మిది ఒకే ప్రాక్సీని ఎంచుకోకుండా ఆపదు.

విధానం “ఎంచుకున్న ప్రతి ప్రాక్సీ ద్వారా గరిష్ఠంగా నాలుగు నడుస్తున్న కార్యకలాపాలు” అయితే, ఆ విధానాన్ని నేరుగా వ్యక్తపరచండి. ప్రతి ప్రాక్సీ గుర్తింపుకు ఒక సెమాఫోర్ ఉంచి, ప్రాక్సీ సామర్థ్యాన్ని వినియోగించే పని చుట్టూ దాన్ని పొందండి.

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లు ఒకే సామర్థ్య పూల్‌ను సూచిస్తే, అవి ఒక బడ్జెట్‌ను పంచుకోవాలా అని నిర్ణయించండి. దీనికి విరుద్ధంగా, వేర్వేరు పోర్టులు లేదా ఖాతాలు వేరే పరిమితులను సూచించవచ్చు, ఆపరేటర్ వాటిని అలా నమోదు చేసినప్పుడు.

థ్రూపుట్ తగ్గినప్పుడు, పని ఎక్కడ నిరీక్షిస్తోందో పరిశీలించండి: మీ సెమాఫోర్, కనెక్టర్, ప్రాక్సీ కనెక్షన్ సెటప్, లేదా ప్రతిస్పందన పఠనం. అన్ని పరిమితులను ఒకేసారి పెంచడం ఆ భేదాన్ని కష్టతరం చేస్తుంది మరియు క్యూను మీరు నియంత్రించని ప్రాక్సీకి కదిలించవచ్చు.

సంబంధిత వ్యాసాలు