Ipe kila proksi ya aiohttp bajeti yake ya usawa
Punguza kazi inayoendelea kwa kila proksi iliyochaguliwa huku ukihifadhi mipaka ya dimbwi la miunganisho ya aiohttp na usafishaji wa majibu.
Dimbwi la proksi linaweza kuwa na vituo vya mwisho vyenye uwezo tofauti sana. Kuruhusu shughuli hamsini katika programu hakuzuii arobaini na tisa kati yao kuchagua proksi moja.
Ikiwa sera ni “shughuli zisizozidi nne zinazoendelea kupitia kila proksi iliyochaguliwa”, eleza sera hiyo moja kwa moja. Weka semafoa kwa kila utambulisho wa proksi, na uipate kuzunguka kazi inayotumia uwezo wa proksi.
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()Mchoro huu unadhania kuwa asyncio imeingizwa na URL za proksi zimethibitishwa. Kwa maombi ya umma kwenye njia ya proksi ya umma inayoruhusiwa, orodha ya proksi za HTTP hutoa watahiniwa wa URL za proksi za aiohttp. Programu halisi inapaswa pia kuweka muda wake wa kuisha wa ombi na kuamua ni data ngapi ya jibu inayohitaji. Kusoma faili kubwa yote kwenye kumbukumbu ni uamuzi tofauti wa rasilimali.
Hifadhi kibali kwa sehemu ya gharama kubwa
Kutoa semafoa mara tu vichwa vya jibu vinapofika kunaweza kushinda kikomo kilichokusudiwa. Mwili unaotiririka unaweza kuendelea kutumia muunganisho muda mrefu baadaye. Hifadhi kibali hadi mwili utumike au jibu lifungwe kulingana na mtiririko wa kazi wa programu.
Wasimamizi wa muktadha waliopachikwa hufanya usafishaji uonekane wakati hitilafu au kughairi kunatoka kwenye operesheni. Epuka kupata kwa mkono na kutoa tu chini ya kazi iliyofanikiwa.
Mipaka ya muunganisho hujibu swali lingine
Mipaka ya kiunganishi cha aiohttp huweka kikomo cha miunganisho kulingana na kanuni zilizoandikwa za kiunganishi. Hubaki muhimu kando ya semafoa ya programu. Kikomo cha miunganisho kwa kila lengwa hakionyeshi, kwa jina lake pekee, bajeti inayoshirikiwa na malengo yote yaliyopewa proksi moja.
Pia tofautisha usawa na kiwango cha maombi. Maombi manne ya muda mrefu na maombi manne mafupi sana hutumia mgawo sawa wa usawa huku yakitoa viwango tofauti vya maombi kwa sekunde. Huduma yenye sera ya kiwango inaweza kuhitaji upangaji wa mwendo au kikomo cha kiwango tofauti.
Chagua kitambulisho cha proksi thabiti na kisicho siri kwa kumbukumbu na vipimo. Ikiwa URL mbili zenye vitambulisho zinarudia dimbwi moja la uwezo, amua ikiwa zinapaswa kushiriki bajeti moja. Kinyume chake, bandari au akaunti tofauti zinaweza kuwakilisha mipaka tofauti wakati mwendeshaji anaziarifu hivyo.
Wakati upitishaji unapungua, chunguza wapi kazi inasubiri: semafoa yako, kiunganishi, usanidi wa muunganisho wa proksi, au usomaji wa majibu. Kuinua mipaka yote kwa wakati mmoja hufanya tofauti hiyo kuwa ngumu zaidi na kunaweza kuhamisha foleni kwenda kwa proksi usiyodhibiti.