Guzzle Pool: အလုပ်တစ်ခုချင်းစီ၏ proxy ကို requestAsync သို့ ပေးပို့ပါ
PSR-7 တောင်းဆိုမှု မက်ဆေ့ခ်ျ သို့မဟုတ် ပိတ်ဆို့သော ဖက်ထရီအစား အည Synchronous မဟုတ်သော လုပ်ဆောင်ချက်တစ်ခုစီတွင် proxy ရွေးချယ်မှုများ ထည့်ပါ။
Guzzle အလုပ်တစ်ခုချင်းစီ၏ proxy ကို pool စတင်သော async လုပ်ဆောင်ချက်ပေါ်တွင် ထားပါ။ ရှိပြီးသား client ဆက်တင်အတွင်း promise ဖက်ထရီများကို အသုံးပြုပါ:
$operations = function () use ($client, $jobs) {
foreach ($jobs as $id => $job) {
yield $id => function () use ($client, $job) {
return $client->requestAsync('GET', $job['url'], [
'proxy' => $job['proxy'],
'timeout' => 20,
]);
};
}
};
$pool = new GuzzleHttp\Pool($client, $operations(), [
'concurrency' => 4,
]);
$pool->promise()->wait();
အတည်ပြုပြီး အလုပ်တစ်ခုစီသည် ဦးတည်ရာနှင့် proxy တစ်ခု ပေးသည်။ ခွင့်ပြုထားသော အများသူငှာ တောင်းဆိုမှုအတွက် HTTP proxy စာရင်းမှ HTTP ကိုယ်စားလှယ်လောင်းတစ်ဦးသည် ထိုအလုပ်၏ အထောက်အထားမလိုသော proxy URL ကို ပေးနိုင်သည်။ ရွေးချယ်မှုသည် ၎င်း၏ ဖက်ထရီ မလည်ပတ်မီ ဖြစ်ပေါ်သည်။ PSR-7 တောင်းဆိုမှုသည် HTTP မက်ဆေ့ခ်ျကို ဖော်ပြသည်၊ ဤပို့ဆောင်မှု ရွေးချယ်စရာများသည် သယ်ယူပို့ဆောင်ရေးကို ထိန်းချုပ်သည်။ မက်ဆေ့ခ်ျဘေးတွင် proxy တန်ဖိုးကို ပရင့်ထုတ်ခြင်း သို့မဟုတ် သိမ်းဆည်းခြင်းသည် အခြားနည်းဖြင့် ပို့သော လုပ်ဆောင်ချက်ကို ဖွဲ့စည်းနိုင်မည် မဟုတ်ပါ။
ဖက်ထရီမှ requestAsync() ကို ပြန်ပေးပါ။ ထိုနေရာတွင် sync request() ကို ခေါ်ခြင်းသည် pool သည် တစ်ပြိုင်နက် အလုပ်စတင်ရန် ကြိုးစားနေစဉ် ပိတ်ဆို့နိုင်သည်။
ပြည့်စုံသော နှင့် ပယ်ချသော ရလဒ်များအတွက် အက်ပ်၏ ရှိပြီးသား ကိုင်တွယ်မှုကို အသုံးပြု၍ callback များ ထည့်ပါ။ အလုပ်စသော့၊ ရွေးချယ်ထားသော proxy အမှတ်အသားနှင့် ကြိုးစားမှုနံပါတ်ကို ရလဒ်နှစ်ခုစလုံးတွင် ထားပါ။ ပြီးစီးမှု အစဉ်သည် ထည့်သွင်းမှု အစဉ်နှင့် မတူပါ။ အလုပ်အတွက် တစ်ခုကို မှတ်တမ်းတင်ပြီးနောက် ဖက်ထရီအတွင်း အခြား endpoint တစ်ခုကို လျှို့ဝှက်စွာ မရွေးပါနှင့်။
concurrency တန်ဖိုးသည် ဤ pool ၏ အလုပ်ကို ကန့်သတ်သည်။ ကန့်သတ်ထားသော proxy သို့မဟုတ် အကောင့်တစ်ခုကို ရွေးသော အလုပ်များစွာသည် ထို endpoint အတွက် သီးခြား ဘတ်ဂျက် လိုအပ်နိုင်သေးသည်။
ရလဒ်များကို အဆင့်အလိုက် အနက်ဖွင့်ပါ။ ဦးတည်ရာ ပယ်ချမှု၊ proxy အတည်ပြုမှုနှင့် ချိတ်ဆက်မှု အချိန်ကုန်ဆုံးမှုသည် မတူညီသော ရလဒ်များ ဖြစ်သည်။ အလုပ်နှင့်အတူ သိမ်းထားသော ပို့ဆောင်မှု ရွေးချယ်စရာများသည် မည်သည့်လမ်းကြောင်းက ရလဒ်တစ်ခုစီကို ဖြစ်ပေါ်စေခဲ့သည်ကို ပြသည်။