પ્રોક્સી પૂલમાં ખૂબ જ અલગ ક્ષમતાવાળા એન્ડપોઇન્ટ હોઈ શકે છે. એપ્લિકેશનમાં પચાસ કામગીરીની મંજૂરી આપવાથી તેમાંથી ઓગણપચાસને એક જ પ્રોક્સી પસંદ કરતા અટકાવતું નથી.

જો નીતિ “દરેક પસંદ કરેલ પ્રોક્સી દ્વારા વધુમાં વધુ ચાર ચાલુ કામગીરી” હોય, તો તે નીતિ સીધી રીતે વ્યક્ત કરો. દરેક પ્રોક્સી ઓળખ માટે સેમાફોર રાખો અને પ્રોક્સીની ક્ષમતા વાપરતા કામની આસપાસ તેને મેળવો.

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 એક જ ક્ષમતા પૂલનો સંદર્ભ લે છે, તો નક્કી કરો કે તેમણે એક બજેટ શેર કરવું જોઈએ કે નહીં. તેનાથી વિપરીત, વિવિધ પોર્ટ અથવા ખાતા અલગ મર્યાદાઓ રજૂ કરી શકે છે જ્યારે ઓપરેટર તેમને તે રીતે દસ્તાવેજીકૃત કરે છે.

જ્યારે થ્રુપુટ ઘટે છે, ત્યારે તપાસો કે કામ ક્યાં રાહ જોઈ રહ્યું છે: તમારું સેમાફોર, કનેક્ટર, પ્રોક્સી કનેક્શન સેટઅપ, અથવા પ્રતિભાવ વાંચન. એકસાથે બધી મર્યાદાઓ વધારવાથી તે તફાવત કરવો મુશ્કેલ બને છે અને કતારને તમે નિયંત્રિત ન કરતા પ્રોક્સીમાં ખસેડી શકે છે.

સંબંધિત લેખો