Rhowch i bob proxy aiohttp ei gyllideb cydrededd ei hun
Cyfyngwch waith ar y gweill fesul proxy a ddewiswyd tra'n cadw terfynau pwll cysylltiadau aiohttp a glanhau ymatebion.
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.