တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများကိုပြုလုပ်သောအခါ PHP တွင် curl extension သည်တစ်ချိန်တည်းတွင် HTTP တောင်းဆိုမှုများကိုတစ်ချိန်တည်းပို့ရန်အတွက်အစီအစဉ်စွမ်းဆောင်ရည်ကိုတိုးတက်စေနိုင်သည်။ သို့သော်တောင်းဆိုမှုများကိုကိုင်တွယ်သည့်အခါအရင်းအမြစ်များကိုစနစ်တကျဖြန့်ချိပြီးမှတ်စုများယိုစိမ့်မှုသို့မဟုတ်လက်ကိုင်ယိုစိမ့်မှုများကိုရှောင်ရှားရန်မည်သို့သေချာစေနိုင်သနည်း။ သယံဇာတအရင်းအမြစ်ဖြန့်ချိမှုကိုသေချာစေရန် curlti_close function ကိုမည်သို့မှန်ကန်စွာအသုံးပြုရမည်ကိုကျွန်ုပ်တို့အာရုံစိုက်ပါမည်။
curl_multi_clock function ကို curl multi-handle ကိုပိတ်ပြီး၎င်းနှင့်ဆက်စပ်သောအရင်းအမြစ်များအားလုံးကိုဖြန့်ချိရန်အသုံးပြုသည်။ curl_multi_init ကို သုံး. မျိုးစုံလက်ကိုင်ကို ဖန်တီး. တောင်းဆိုမှုများကိုပေးပို့ရန်အတွက်တောင်းဆိုမှုများကိုပေးပို့ရန်အတွက်တောင်းဆိုမှုများအားလုံးကိုထိုလက်ကိုင်မှတဆင့်စီမံခန့်ခွဲနိုင်သည်။ မှတ်ဥာဏ်ယိုစိမ့်မှုများကိုရှောင်ရှားနိုင်ရန်အတွက်တောင်းဆိုမှုများအားလုံးကိုဖြည့်စွက်ပြီးပါက curl_multi_close ကို သက်ဆိုင်ရာအရင်းအမြစ်များကိုဖြန့်ချိရန်တောင်းဆိုရန်လိုအပ်သည်။
တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများတွင်အောက်ပါအဆင့်များသည်များသောအားဖြင့်ပါ 0 င်သည်။
မျိုးစုံ ဆံပင်ကောက်ကောက် sessions များကို အစပြု. လက်ကိုင်မျိုးစုံကိုထည့်ပါ။
တောင်းဆိုမှုများအားလုံးကိုလုပ်ဆောင်ပြီးသူတို့ပြီးအောင်စောင့်ပါ။
တောင်းဆိုမှုတစ်ခုစီအတွက်တုန့်ပြန်မှုအချက်အလက်များကိုမှန်ကန်စွာလုပ်ဆောင်ရန်သေချာစေပါ။
Multi-hands ကိုပိတ်ပြီးအရင်းအမြစ်ကိုပိတ်ရန် curl_multi_close function ကိုသုံးပါ။
ထို့နောက်အခြေခံကုဒ်နမူနာတစ်ခုက curl_multi_close ကို မှန်ကန်စွာမည်သို့အသုံးပြုရမည်ကိုပြသသည်။
<?php
// 1. ဖြစ်ပေါ်လာခြင်း cURL မျိုးစုံလက်ကိုင်
$mh = curl_multi_init(); // 创建一个မျိုးစုံလက်ကိုင်
// 2. တစ်ခုတည်းဖန်တီးပါ cURL ရုံးထိုင်အချိန်ကာလ并添加到မျိုးစုံလက်ကိုင်中
$ch1 = curl_init('http://gitbox.net/api/request1');
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch1);
$ch2 = curl_init('http://gitbox.net/api/request2');
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch2);
// 3. မျိုးစုံတောင်းဆိုမှုများလုပ်ဆောင်ပါ
do {
$status = curl_multi_exec($mh, $active);
if ($active) {
curl_multi_select($mh); // ဖြည့်စွက်ရန်တောင်းဆိုမှုကိုစောင့်ပါ
}
} while ($active && $status == CURLM_OK);
// 4. တုံ့ပြန်မှုဒေတာကိုရယူပါ
$response1 = curl_multi_getcontent($ch1);
$response2 = curl_multi_getcontent($ch2);
// 5. ရုပ်သိမ်းခြင်း cURL ရုံးထိုင်အချိန်ကာလ
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
// 6. အရင်းအမြစ်များကိုအခမဲ့
curl_close($ch1);
curl_close($ch2);
// 7. ရုပ်သိမ်းခြင်းမျိုးစုံလက်ကိုင်
curl_multi_close($mh);
echo "မေးမြန်း1တုံ့ပြန်ချက်: " . $response1 . "\n";
echo "မေးမြန်း2တုံ့ပြန်ချက်: " . $response2 . "\n";
?>
အရင်းအမြစ်ဖြန့်ချိနိုင်ရန်အမိန့် - တစ် ဦး ချင်း စီ curl session တစ်ခုချင်းစီကိုမပိတ်မီလက်ကိုင်မျိုးစုံမှဖယ်ထုတ်ရန်သေချာအောင်လုပ်ပါ။ ဒီလိုမှမဟုတ်ရင်လက်ကိုင်ကိုမှားယွင်းစွာဖြန့်ချိနိုင်ပြီးမှတ်ဉာဏ်ယိုစိမ့်မှုဖြစ်စေနိုင်သည်။
အမှားကိုင်တွယ်ခြင်း - curl_multi_exec ကိုကွပ်မျက်စဉ်အတွင်းတောင်းဆိုမှုတစ်ခုစီ၏ကွပ်မျက်မှုအခြေအနေကိုစစ်ဆေးရန်သင်ဂရုပြုသင့်သည်။ အကယ်. တောင်းဆိုမှုသည်ပျက်ကွက်ပါကအမှားကိုအချိန်မီကိုင်တွယ်သင့်ပြီးသက်ဆိုင်ရာအရင်းအမြစ်များကိုဖြန့်ချိသင့်သည်။
စွမ်းဆောင်ရည် optimization - တောင်းဆိုမှုအမြောက်အများရှိလျှင်မလိုအပ်သောပိတ်ဆို့ခြင်းကိုလျှော့ချပါ။ CURL_Multi_Select ဖြင့် CPU ကို အသုံးပြု. အသုံးပြုနိုင်သည်။
curl_multi_cloco_clock function ကိုမှန်ကန်စွာအသုံးပြုခြင်းသည်တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများတွင်အရင်းအမြစ်များကိုလွှတ်ပေးရန်အလွန်အရေးကြီးသည်။ အထက်ပါလုပ်ငန်းစဉ်ကိုလိုက်နာခြင်းအားဖြင့် ဆံပင် ကောက်ကောက်နှင့်လက်ကိုင်ပေါင်းစုံကိုမှန်ကန်စွာပိတ်ထားခြင်းအားဖြင့်မှတ်ဥာဏ်ယိုစိမ့်မှုများကိုရှောင်ရှားရန်သာမကပရိုဂရမ်တည်ငြိမ်မှုနှင့်စွမ်းဆောင်ရည်ကိုလည်းတိုးတက်စေသည်။ အထူးသဖြင့်မြင့်မားသောတစ်ပြိုင်နက်တည်းဖြစ်စဉ်များတွင်အရင်းအမြစ်များကိုဆင်ခြင်တုံတရားစီမံခန့်ခွဲမှုသည်ကုဒ်၏ကြံ့ခိုင်မှုကိုများစွာတိုးတက်စေလိမ့်မည်။