Әр 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 бір қуат пулына сілтесе, олардың бір бюджетті бөлісуі керек пе, соны шешіңіз. Керісінше, әртүрлі порттар немесе тіркелгілер оператор оларды солай құжаттаған жағдайда жеке шектеулерді білдіруі мүмкін.
Өткізу қабілеті төмендегенде, жұмыстың қайда күтіп тұрғанын тексеріңіз: семафорыңыз, қосқыш, прокси қосылымын орнату немесе жауаптарды оқу. Барлық шектеулерді бірден көтеру бұл айырмашылықты қиындатады және кезекті өзіңіз бақыламайтын проксиге жылжытуы мүмкін.