ለእያንዳንዱ የaiohttp ፕሮክሲ የራሱን የተጓዳኝነት በጀት ይስጡት
በእያንዳንዱ የተመረጠ ፕሮክሲ ላይ በሂደት ላይ ያለውን ስራ በመገደብ የaiohttp የግንኙነት ገንዳ ገደቦችንና የምላሽ ማጽዳትን ይያዙ።
የፕሮክሲ ገንዳ በጣም የተለያየ አቅም ያላቸውን መጨረሻ ነጥቦች ሊይዝ ይችላል። በመተግበሪያው ውስጥ ሃምሳ ስራዎችን መፍቀድ ከእነሱ አርባ ዘጠኙ ተመሳሳይ ፕሮክሲ እንዳይመርጡ አይከላከልም።
መመሪያው “በእያንዳንዱ የተመረጠ ፕሮክሲ ቢበዛ አራት በሂደት ላይ ያሉ ስራዎች” ከሆነ፣ ያንን መመሪያ በቀጥታ ይግለጹ። ለእያንዳንዱ የፕሮክሲ ማንነት ሴማፎር ያስቀምጡ፣ እና የፕሮክሲውን አቅም በሚጠቀመው ስራ ዙሪያ ያግኙት።
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ዎች ወደ አንድ የአቅም ገንዳ ከተጠቃለሉ፣ አንድ በጀት መጋራት እንዳለባቸው ይወስኑ። በተቃራኒው፣ ኦፕሬተሩ እንደዛ ሲያስቀምጥ የተለያዩ ወደቦች ወይም መለያዎች የተለያዩ ገደቦችን ሊወክሉ ይችላሉ።
የመፍሰስ ፍጥነት ሲቀንስ፣ ስራ የት እንደሚጠብቅ ይመርምሩ፦ ሴማፎርዎ፣ ማገናኛው፣ የፕሮክሲ ግንኙነት ማዋቀር፣ ወይም የምላሽ ንባቦች። ሁሉንም ገደቦች በአንድ ጊዜ ማሳደግ ያንን ልዩነት ይከብዳል እና ወረፋውን ወደ እርስዎ የማይቆጣጠሩት ፕሮክሲ ሊያንቀሳቅስ ይችላል።