Ар бир 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 бир кубаттуулук пулуна шилтеме кылса, алар бир бюджетти бөлүшүүсү керекпи, чечиңиз. Тескерисинче, ар башка порттор же эсептер өзүнчө чектөөлөрдү билдириши мүмкүн, эгер оператор аларды ошондой документтесе.
Өткөрүү жөндөмдүүлүгү төмөндөгөндө, иш кайда күтүп жатканын текшериңиз: семафоруңуз, туташтыргыч, прокси туташуусун орнотуу же жоопторду окуу. Бардык чектөөлөрдү бир убакта көтөрүү бул айырмачылыкты кыйындатат жана кезекти өзүңүз көзөмөлдөбөгөн проксиге жылдырышы мүмкүн.