Eman aiohttp proxy bakoitzari bere konkurrentzia-aurrekontua
Mugatu hautatutako proxy bakoitzeko abian den lana, aiohttp konexio-poolaren mugak eta erantzunen garbiketa mantenduz.
Proxy pool batek oso edukiera desberdineko amaierako puntuak izan ditzake. Aplikazio osoan berrogeita hamar eragiketari baimena emateak ez ditu horietako berrogeita bederatzi proxy bera aukeratzea eragozten.
Politika «proxy hautatu bakoitzeko gehienez lau eragiketa abian» bada, adierazi politika hori zuzenean. Mantendu semaforo bat proxy-identitate bakoitzeko, eta eskuratu proxyaren edukiera kontsumitzen duen lanaren inguruan.
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()Zirriborro honek suposatzen du asyncio inportatu dela eta proxy URLak baliozkotu direla. Proxy publiko bide baimendu bateko eskaera publikoetarako, HTTP proxy zerrendak aiohttp proxy URLetarako hautagaiak ematen ditu. Aplikazio erreal batek bere eskaera-denborazko muga ezarri eta zenbat erantzun-datu behar dituen erabaki beharko luke. Fitxategi handi bat osorik memorian irakurtzea baliabide-erabaki bereizia da.
Mantendu baimena zati garestirako
Erantzun-buruak iritsi bezain laster semaforoa askatzeak nahi den muga huts egin dezake. Streaming gorputz batek konexioa askoz geroago erabiltzen jarrai dezake. Mantendu baimena gorputza kontsumitu arte edo erantzuna aplikazioaren lan-fluxuaren arabera itxi arte.
Kontestu-kudeatzaile habiaratuek garbiketa ikusgai egiten dute salbuespen edo ezeztatze batek eragiketa uzten duenean. Saihestu eskuz eskuratzea eta funtzio arrakastatsu baten amaieran bakarrik askatzea.
Konexio-mugek beste galdera bati erantzuten diote
aiohttp konektorearen mugek konexioak konektorearen arau dokumentatuen arabera mugatzen dituzte. Aplikazio-semaforo baten ondoan erabilgarriak izaten jarraitzen dute. Helmugako konexio-muga batek ez du, bere izenagatik bakarrik, proxy bati esleitutako helmuga guztiek partekatutako aurrekonturik adierazten.
Bereizi konkurrentzia eskaera-tasatik ere. Lau eskaera luze eta lau eskaera oso laburrek konkurrentzia-baimen bera erabiltzen dute, baina eskaera/segundo tasa desberdinak sortzen dituzte. Tasaren politika duen zerbitzu batek erritmoa edo tasa-mugatzaile bereizia behar izan dezake.
Aukeratu proxy-identifikatzaile egonkor eta ez-sekretua erregistroetarako eta metrikketarako. Bi kredentzialdun URL edukiera-pool berari badagozkio, erabaki aurrekontu bat partekatu behar duten. Alderantziz, portu edo kontu desberdinek muga bereiziak adieraz ditzakete operadoreak hala dokumentatzen duenean.
Errendimendua jaisten denean, aztertu non itxaroten duen lanak: zure semaforoa, konektorea, proxy-konexioaren ezarpena edo erantzun-irakurketak. Muga guztiak aldi berean igotzeak bereizketa hori zailagoa egiten du eta ilara kontrolatzen ez duzun proxy batera eraman dezake.