Gall pwll proxy gynnwys penynnau â chapasiti gwahanol iawn. Nid yw caniatáu hanner cant o weithrediadau ar draws y rhaglen yn atal naw a deugain ohonynt rhag dewis yr un proxy.

Os yw'r polisi yn “dim mwy na phedwar gweithrediad ar y gweill trwy bob proxy a ddewiswyd,” mynegwch y polisi hwnnw'n uniongyrchol. Cadwch semaffor ar gyfer pob hunaniaeth proxy, a chaffaelwch ef o amgylch y gwaith sy'n defnyddio capasiti'r proxy.

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

Mae'r braslun hwn yn tybio bod asyncio wedi'i fewnforio a bod URLau'r proxy wedi'u dilysu. Ar gyfer ceisiadau cyhoeddus ar lwybr proxy cyhoeddus a ganiateir, mae'r rhestr proxy HTTP yn darparu ymgeiswyr ar gyfer URLau proxy aiohttp. Dylai gwir raglen hefyd osod ei chyfnod ailgyfeirio cais ei hun a phenderfynu faint o ddata ymateb sydd ei angen arni. Mae darllen ffeil fawr yn gyfan gwbl i'r cof yn benderfyniad adnoddau ar wahân.

Cadwch y trwydded ar gyfer y rhan gostus

Gall rhyddhau'r semaffor cyn gynted ag y daw penawdau'r ymateb foddi'r terfyn a fwriadwyd. Gall corff ffrydio barhau i ddefnyddio'r cysylltiad ymhell wedyn. Cadwch y drwydded nes bod y corff wedi'i fwyta neu'r ymateb wedi'i gau yn unol â llif gwaith y rhaglen.

Mae'r rheolwyr cyd-destun nythiedig yn gwneud glanhau'n weladwy pan fydd eithriad neu ganslo yn gadael y gweithrediad. Osgoi caffael â llaw a rhyddhau yn unig ar waelod swyddogaeth lwyddiannus.

Mae terfynau cysylltiad yn ateb cwestiwn arall

Mae terfynau cysylltydd aiohttp yn capio cysylltiadau yn ôl rheolau dogfennol y cysylltydd. Maent yn parhau'n ddefnyddiol ochr yn ochr â semaffor rhaglen. Nid yw terfyn cysylltiadau fesul cyrchfan, wrth ei enw yn unig, yn mynegi cyllideb a rennir gan bob cyrchfan a nelltuir i un proxy.

Gwahaniaethwch hefyd rhwng cydrededd a chyfradd ceisiadau. Mae pedwar cais hirhoedlog a phedwar cais byr iawn yn defnyddio'r un lwfans cydrededd tra'n cynhyrchu cyfraddau ceisiadau-yr-eiliad gwahanol. Efallai y bydd angen gwasanaeth â pholisi cyfradd ar gyflymu neu derfynydd cyfradd ar wahân.

Dewiswch ddynodwr proxy sefydlog, nad yw'n gyfrinach, ar gyfer logiau a metrigau. Os yw dau URL sy'n cario cyfrineiriau yn cyfeirio at yr un pwll capasiti, penderfynwch a ddylent rannu un gyllideb. I'r gwrthwyneb, gall porthladdoedd neu gyfrifon gwahanol gynrychioli terfynau ar wahân pan fydd y gweithredwr yn eu dogfennu felly.

Pan fydd trwybwn yn gostwng, archwiliwch ble mae gwaith yn aros: eich semaffor, y cysylltydd, sefydlu cysylltiad proxy, neu ddarlleniadau ymateb. Mae codi pob terfyn ar unwaith yn gwneud y gwahaniaeth hwnnw'n anoddach ac yn gallu symud y ciw i proxy nad ydych yn ei reoli.

Erthyglau cysylltiedig