proxy ပေါင်းအိုင်တွင် စွမ်းရည်အလွန်ကွာခြားသော အဆုံးမှတ်များ ပါဝင်နိုင်သည်။ အပလီကေးရှင်းတစ်ခုလုံးတွင် လုပ်ဆောင်မှု ငါးဆယ်ခုကို ခွင့်ပြုခြင်းသည် ၎င်းတို့အနက် လေးဆယ့်ကိုးခုကို တူညီသော proxy ရွေးချယ်ခြင်းမှ မတားဆီးနိုင်ပါ။

မူဝါဒသည် “ရွေးချယ်ထားသော proxy တစ်ခုစီမှတစ်ဆင့် အများဆုံး လုပ်ဆောင်နေမှု လေးခု” ဖြစ်ပါက ထိုမူဝါဒကို တိုက်ရိုက် ဖော်ပြပါ။ proxy အမှတ်အသားတစ်ခုစီအတွက် semaphore တစ်ခု ထားရှိပြီး 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()

ဤပုံကြမ်းသည် asyncio ကို တင်သွင်းပြီးဖြစ်ပြီး proxy URL များကို အတည်ပြုပြီးဖြစ်သည်ဟု ယူဆသည်။ ခွင့်ပြုထားသော အများသူငှာ proxy လမ်းကြောင်းရှိ အများသူငှာ တောင်းဆိုမှုများအတွက် HTTP proxy စာရင်းသည် aiohttp ၏ proxy URL များအတွက် ကိုယ်စားလှယ်လောင်းများကို ပံ့ပိုးပေးသည်။ စစ်မှန်သော အပလီကေးရှင်းသည် ၎င်း၏ကိုယ်ပိုင် တောင်းဆိုမှု အချိန်ကန့်သတ်ချက်ကို သတ်မှတ်ပြီး မည်မျှ တုံ့ပြန်မှုဒေတာ လိုအပ်သည်ကို ဆုံးဖြတ်သင့်သည်။ ကြီးမားသော ဖိုင်တစ်ခုလုံးကို မမ်မိုရီထဲသို့ ဖတ်ခြင်းသည် သီးခြား အရင်းအမြစ် ဆုံးဖြတ်ချက် ဖြစ်သည်။

ဈေးကြီးသော အပိုင်းအတွက် ခွင့်ပြုချက် ထိန်းထားပါ

တုံ့ပြန်မှု ခေါင်းစီးများ ရောက်ရှိသည်နှင့် semaphore ကို လွှတ်လိုက်ခြင်းသည် ရည်ရွယ်ထားသော ကန့်သတ်ချက်ကို ပျက်ပြယ်စေနိုင်သည်။ စီးကြောင်း ကိုယ်ထည်သည် ထို့နောက် အချိန်ကြာမြင့်စွာ ချိတ်ဆက်မှုကို ဆက်လက်အသုံးပြုနိုင်သည်။ ကိုယ်ထည်ကို သုံးစွဲပြီးသည်အထိ သို့မဟုတ် အပလီကေးရှင်း၏ လုပ်ငန်းစဉ်အရ တုံ့ပြန်မှုကို ပိတ်သည်အထိ ခွင့်ပြုချက်ကို ထိန်းထားပါ။

ထပ်ဆင့်ထားသော context မန်နေဂျာများသည် ခြွင်းချက် သို့မဟုတ် ပယ်ဖျက်မှုတစ်ခု လုပ်ဆောင်မှုမှ ထွက်ခွာသောအခါ သန့်ရှင်းရေးကို မြင်သာစေသည်။ ကိုယ်တိုင် ရယူပြီး အောင်မြင်သော လုပ်ဆောင်ချက်၏ အောက်ခြေတွင်သာ လွှတ်ခြင်းကို ရှောင်ပါ။

ချိတ်ဆက်မှု ကန့်သတ်ချက်များသည် အခြားမေးခွန်းကို ဖြေသည်

aiohttp ၏ ချိတ်ဆက်ကိရိယာ ကန့်သတ်ချက်များသည် ချိတ်ဆက်ကိရိယာ၏ မှတ်တမ်းတင်ထားသော စည်းမျဉ်းများအရ ချိတ်ဆက်မှုများကို ကန့်သတ်သည်။ ၎င်းတို့သည် အပလီကေးရှင်း semaphore နှင့်အတူ အသုံးဝင်ဆဲ ဖြစ်သည်။ ဦးတည်ရာတစ်ခုစီအတွက် ချိတ်ဆက်မှု ကန့်သတ်ချက်သည် ၎င်း၏အမည်ဖြင့်သာ proxy တစ်ခုသို့ တာဝန်ပေးထားသော ဦးတည်ရာများအားလုံး မျှဝေသော ဘတ်ဂျက်ကို ဖော်ပြသည်မဟုတ်ပါ။

တစ်ပြိုင်နက်လုပ်ဆောင်နိုင်မှုကို တောင်းဆိုမှုနှုန်းနှင့်လည်း ခွဲခြားပါ။ သက်တမ်းရှည် တောင်းဆိုမှု လေးခုနှင့် အလွန်တိုတောင်းသော တောင်းဆိုမှု လေးခုသည် တူညီသော တစ်ပြိုင်နက်ခွင့် ခွဲတမ်းကို အသုံးပြုသော်လည်း မတူညီသော တစ်စက္ကန့် တောင်းဆိုမှုနှုန်းများကို ထုတ်ပေးသည်။ နှုန်းမူဝါဒရှိသော ဝန်ဆောင်မှုတစ်ခုသည် အရှိန်ချိန်ညှိမှု သို့မဟုတ် သီးခြား နှုန်းကန့်သတ်ကိရိယာ လိုအပ်နိုင်သည်။

မှတ်တမ်းများနှင့် မက်ထရစ်များအတွက် တည်ငြိမ်ပြီး လျှို့ဝှက်မဟုတ်သော proxy အမှတ်အသားကို ရွေးပါ။ အထောက်အထား ကိုင်ဆောင်သော URL နှစ်ခုသည် တူညီသော စွမ်းရည်ပေါင်းအိုင်ကို ရည်ညွှန်းပါက ၎င်းတို့သည် ဘတ်ဂျက်တစ်ခု မျှဝေသင့်မသင့် ဆုံးဖြတ်ပါ။ ဆန့်ကျင်ဘက်အားဖြင့် မတူညီသော port သို့မဟုတ် အကောင့်များသည် အော်ပရေတာက ထိုသို့ မှတ်တမ်းတင်သည့်အခါ သီးခြား ကန့်သတ်ချက်များကို ကိုယ်စားပြုနိုင်သည်။

ဖြတ်သန်းနိုင်စွမ်း ကျဆင်းသောအခါ အလုပ်သည် ဘယ်နေရာတွင် စောင့်နေသည်ကို စစ်ဆေးပါ- သင့် semaphore၊ ချိတ်ဆက်ကိရိယာ၊ proxy ချိတ်ဆက်မှု ပြင်ဆင်ခြင်း သို့မဟုတ် တုံ့ပြန်မှု ဖတ်ခြင်း။ ကန့်သတ်ချက်အားလုံးကို တစ်ပြိုင်နက် မြှင့်တင်ခြင်းသည် ထိုကွဲပြားမှုကို ပိုခက်ခဲစေပြီး တန်းစီမှုကို သင်မထိန်းချုပ်နိုင်သော proxy သို့ ရွှေ့နိုင်သည်။

ဆက်စပ်ဆောင်းပါးများ