Proksi hovuzida juda har xil quvvatga ega so‘nggi nuqtalar bo‘lishi mumkin. Butun ilovada ellikta amalga ruxsat berish ularning qirq to‘qqiztasi bir xil proksini tanlashiga to‘sqinlik qilmaydi.

Agar siyosat «har bir tanlangan proksi orqali ko‘pi bilan to‘rtta davom etayotgan amal» bo‘lsa, bu siyosatni to‘g‘ridan-to‘g‘ri ifodalang. Har bir proksi identifikatori uchun semafor saqlang va uni proksining quvvatini sarflaydigan ish atrofida oling.

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()

Bu eskiz asyncio import qilingan va proksi URL’lari tekshirilgan deb faraz qiladi. Ruxsat etilgan umumiy proksi marshrutidagi umumiy so‘rovlar uchun HTTP proksilar ro‘yxati aiohttp proksi URL’lari uchun nomzodlar beradi. Haqiqiy ilova o‘zining so‘rov muddatini ham belgilashi va qancha javob ma’lumoti kerakligini hal qilishi kerak. Katta faylni butunlay xotiraga o‘qish alohida resurs qaroridir.

Ruxsatni qimmat qism uchun saqlang

Javob sarlavhalari kelishi bilan semaforni bo‘shatish ko‘zda tutilgan cheklovni buzishi mumkin. Oqimli tana bundan keyin ham uzoq vaqt ulanishdan foydalanishi mumkin. Tana iste’mol qilinmaguncha yoki ilova ish oqimiga muvofiq javob yopilmaguncha ruxsatni saqlang.

Ichma-ich kontekst menejerlari istisno yoki bekor qilish amaldan chiqqanda tozalashni ko‘rinadigan qiladi. Qo‘lda olish va faqat muvaffaqiyatli funksiyaning pastida bo‘shatishdan saqlaning.

Ulanish cheklovlari boshqa savolga javob beradi

aiohttp ulagichining cheklovlari ulanishlarni ulagichning hujjatlashtirilgan qoidalariga muvofiq cheklaydi. Ular ilova semafori bilan birga foydali bo‘lib qoladi. Har bir manzilga ulanish cheklovi faqat nomi bilan bitta proksiga tayinlangan barcha manzillar bo‘lishadigan byudjetni ifodalamaydi.

Parallellikni so‘rov tezligidan ham ajrating. To‘rtta uzoq umrli so‘rov va to‘rtta juda qisqa so‘rov bir xil parallellik ulushidan foydalanib, har xil soniyada-so‘rov tezligini hosil qiladi. Tezlik siyosati bo‘lgan xizmat tempni sozlash yoki alohida tezlik cheklagichni talab qilishi mumkin.

Jurnallar va ko‘rsatkichlar uchun barqaror, maxfiy bo‘lmagan proksi identifikatorini tanlang. Agar ishonch ma’lumotlarini olib yuruvchi ikkita URL bir xil quvvat hovuziga ishora qilsa, ular bitta byudjetni bo‘lishishi kerakmi, hal qiling. Aksincha, turli portlar yoki hisoblar alohida cheklovlarni ifodalashi mumkin, operator ularni shunday hujjatlashtirganda.

O‘tkazuvchanlik pasayganda, ish qayerda kutayotganini tekshiring: semaforingiz, ulagich, proksi ulanishini sozlash yoki javoblarni o‘qish. Barcha cheklovlarni bir vaqtda oshirish bu farqni qiyinlashtiradi va navbatni siz boshqarmaydigan proksiga ko‘chirishi mumkin.

O'xshash maqolalar