גיט יעדער aiohttp פּראָקסי איר אייגענעם גלײַכצײַטיקײַט בודזשעט
באַגרענעצט די לויפֿנדיקע אַרבעט פּער אויסגעקליבענער פּראָקסי, בשעת מען האַלט די aiohttp פֿאַרבינדונג־באַסיין גרענעצן און די רייניקונג פֿון ענטפֿערס.
אַ פּראָקסי באַסיין קען אַנטהאַלטן סוף־פּונקטן מיט זייער פֿאַרשידענער קאַפּאַציטעט. דאָס דערלויבן פֿופֿציק אָפּעראַציעס אין דער אַפּליקאַציע פֿאַרהיט נישט נײַן־און־פֿערציק פֿון זיי פֿון אויסקלײַבן די זעלבע פּראָקסי.
אויב די פּאָליטיק איז „העכסטנס פֿיר לויפֿנדיקע אָפּעראַציעס דורך יעדער אויסגעקליבענער פּראָקסי“, דריקט אויס די פּאָליטיק גלײַך. האַלט אַ סעמאַפֿאָר פֿאַר יעדער פּראָקסי־אידענטיטעט, און באַקומט עס אַרום דער אַרבעט וואָס פֿאַרנוצט די קאַפּאַציטעט פֿון דער פּראָקסי.
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()דער סקיצע נעמט אָן אַז asyncio איז אימפּאָרטירט געוואָרן און די פּראָקסי URL־s זענען וואַלידירט. פֿאַר פּובליקע בקשות אויף אַ דערלויבטער פּובליקער פּראָקסי־רוטע פֿאַרזאָרגט די HTTP פּראָקסי־ליסטע קאַנדידאַטן פֿאַר די פּראָקסי URL־s פֿון aiohttp. אַן עכטע אַפּליקאַציע זאָל אויך שטעלן איר אייגענעם בקשה־צײַט־לימיט און באַשליסן ווי פֿיל ענטפֿער־דאַטן זי דאַרפֿט. לייענען אַ גרויסע טעקע גאַנץ אין זכּרון איז אַ באַזונדער רעסורסן־באַשלוס.
האַלט די דערלויבעניש פֿאַר דעם טײַערן טייל
פֿרײַלאָזן דעם סעמאַפֿאָר ווי נאָר די ענטפֿער־קעפּלעך קומען אָן קען פֿאַרלאָזן די געמיינטע גרענעץ. אַ סטרימינג־קערפּער קען ממשיך זײַן צו נוצן די פֿאַרבינדונג לאַנג דערנאָך. האַלט די דערלויבעניש ביז דער קערפּער איז פֿאַרנוצט אָדער דער ענטפֿער איז פֿאַרמאַכט לויט דעם אַרבעטספֿלוס פֿון דער אַפּליקאַציע.
די פֿאַרשטעלטע קאָנטעקסט־פֿאַרוואַלטער מאַכן די רייניקונג זעבאַר ווען אַן אויסנאַם אָדער אַן אָפּזאָג פֿאַרלאָזט די אָפּעראַציע. פֿאַרמײַדט מאַנועל באַקומען און פֿרײַלאָזן נאָר אין דנאָ פֿון אַ געראָטענער פֿונקציע.
פֿאַרבינדונג־גרענעצן ענטפֿערן אַן אַנדער פֿראַגע
די גרענעצן פֿון aiohttp־פֿאַרבינדער באַגרענעצן פֿאַרבינדונגען לויט די דאָקומענטירטע כּללים פֿון דעם פֿאַרבינדער. זיי בלײַבן נוצלעך לעבן אַן אַפּליקאַציע־סעמאַפֿאָר. אַ פֿאַרבינדונג־גרענעץ פּער ציל דריקט נישט אויס, בלויז דורך איר נאָמען, אַ בודזשעט וואָס אַלע צילן צוגעטיילט צו איין פּראָקסי טײלן זיך.
אונטערשיידט אויך גלײַכצײַטיקײַט פֿון בקשה־קורס. פֿיר לאַנגלעבדיקע בקשות און פֿיר זייער קורץ בקשות נוצן דעם זעלביקן גלײַכצײַטיקײַט־אַנטײל בשעת זיי שאַפֿן פֿאַרשידענע בקשות־פּער־סעקונדע קורסן. אַ סערוויס מיט אַ קורס־פּאָליטיק קען דאַרפֿן טעמפּאָ־רעגולירונג אָדער אַ באַזונדער קורס־באַגרענעצער.
קלייבט אויס אַ סטאַבילן, נישט־סודיקן פּראָקסי־אידענטיפֿיקאַטאָר פֿאַר לאָגס און מעטריקס. אויב צוויי URL־s מיט באַגלייביקונגען באַציִען זיך אויף דעם זעלביקן קאַפּאַציטעט־באַסיין, באַשליסט צי זיי זאָלן טײלן איין בודזשעט. פֿאַרקערט, פֿאַרשידענע פּאָרטן אָדער קאָנטן קענען פֿאָרשטעלן באַזונדערע גרענעצן ווען דער אָפּעראַטאָר דאָקומענטירט זיי אַזוי.
ווען דער דורכפֿלוס פֿאַלט, פֿאָרשט ווו די אַרבעט וואַרט: אײַער סעמאַפֿאָר, דער פֿאַרבינדער, דאָס אויסשטעלן פֿון דער פּראָקסי־פֿאַרבינדונג אָדער דאָס לייענען פֿון ענטפֿערס. אויפֿהייבן אַלע גרענעצן אויף אַ מאָל מאַכט דעם אונטערשייד שווערער און קען אַריבערפֿירן די רייע אין אַ פּראָקסי וואָס איר קאָנטראָלירט נישט.