လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> curl_multi_close ပြီးနောက်မမှန်ကန်သောဆံပင်ကောက်ကောက်ကိုလက်လှမ်းမီခြင်းမှရှောင်ရှားရန်

curl_multi_close ပြီးနောက်မမှန်ကန်သောဆံပင်ကောက်ကောက်ကိုလက်လှမ်းမီခြင်းမှရှောင်ရှားရန်

gitbox 2025-05-12

PHP's Curl Multi-Request Multi-Multi-Request Multose ကိုအသုံးပြုသောအခါ curl_mamulti_close သည်အလွန်အရေးကြီးသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ သို့သော် curl_multi_close ပြီးနောက်သင် curl လက်ကိုင်တစ်ခုတည်းကိုဆက်လက်ရယူလိုပါကပရိုဂရမ်သည်ကြိုတင်ခန့်မှန်းရခက်သည့်အပြုအမူကိုတွေ့ကြုံခံစားနိုင်ပြီးကြီးမားသောအမှားများကိုဖြစ်ပေါ်စေသည်။ ၎င်းကိုရှောင်ရှားရန်မှန်ကန်သောအရင်းအမြစ်စီမံခန့်ခွဲမှုနည်းလမ်းကိုနားလည်ရန်လိုအပ်သည်။

အဘယ်ကြောင့်သင်ပိတ်ထားသောဆံပင်ကောက်ကောက်လက်ကိုင်ကိုမသုံးနိုင်တာလဲ

Curl_Multi_Close ($ MH) ဟုခေါ်သည့်အခါ $ MH နှင့်ဆက်စပ်သောအရင်းအမြစ်များကိုပိတ်ထားလိမ့်မည်။ တစ်ခုတည်းဆံပင်ကောက်ကောက်လက်ကိုင် (i.e. ကို curl_init မှတဆင့်ဖန်တီး) ပေမယ့်ချက်ချင်းဖျက်ဆီးခြင်းမဟုတ်ပေမယ့်သူတို့ multi-connection အစိတ်အပိုင်းများမမှန်ကန်ပါလိမ့်မယ်။ နောက်မှဤလက်ကိုင်များကိုဆက်လက်အသုံးပြုနေပါက curl_exec နှင့် curl_getinfo ကဲ့သို့သောစစ်ဆင်ရေးများသည်အမှားအယွင်းများဖြစ်ပေါ်စေပြီးယုတ္တိရှိသည့်ခြွင်းချက်များသို့မဟုတ်အစီအစဉ်ပျက်ပြားသွားစေနိုင်သည်။

မှန်ကန်သောအရင်းအမြစ်ဖြန့်ချိအမိန့်

မမှန်ကန်သောလက်လှမ်းမီမှုပြ the နာကိုရှောင်ရှားရန်အောက်ပါအမိန့်ကိုကိုင်တွယ်သင့်သည် -

  1. အားလုံးတောင်းဆိုမှုရလဒ်များကို execute နှင့်ရယူပါ

  2. တစ် ဦး ချင်းစီ curl လက်ကိုင်တစ်ခုချင်းစီကိုဖယ်ရှားပါ ( curl_maulti_remove_handle )

  3. တစ် ဦး ချင်းစီ၏ဆံပင်ကောက်ကောက်လက်ကိုင်တစ်ခုချင်းစီကိုပိတ်ပါ ( curl_close )

  4. နောက်ဆုံးအနေဖြင့် Multi Match Multi လက်ကိုင် ( curl_multi_close ) ကိုပိတ်ပါ။

၎င်းသည်မည်သည့်ဝှက်ထားသောအန္တရာယ်များမရှိဘဲအရင်းအမြစ်တိုင်းကိုစနစ်တကျဖြန့်ချိကြောင်းသေချာသည်။

နမူနာကုဒ်

ဤတွင်မှန်မှန်ကန်ကန်လက်ကိုင်ကိုင်တွယ်ဖြေရှင်းခြင်း၏ပြည့်စုံသောဥပမာတစ်ခုဖြစ်သည်။ URL domains gitbox.net ကို သုံးကြောင်းသတိပြုပါ။

 <?php
// မျိုးစုံကိုအစပြု cURL လက်ကိုင်
$ch1 = curl_init();
$ch2 = curl_init();

// တည်ဆောက်သည် cURL ရွေးချယ်စရာများ
curl_setopt($ch1, CURLOPT_URL, "https://gitbox.net/api/endpoint1");
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch2, CURLOPT_URL, "https://gitbox.net/api/endpoint2");
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);

// ဖြစ်ပေါ်လာခြင်း multi လက်ကိုင်
$mh = curl_multi_init();

// 添加单个လက်ကိုင်到 multi လက်ကိုင်
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);

// ကရိယာတန်းဆာ multi လက်ကိုင်
$running = null;
do {
    curl_multi_exec($mh, $running);
    curl_multi_select($mh);
} while ($running > 0);

// ရလဒ်များကိုရယူပါ
$response1 = curl_multi_getcontent($ch1);
$response2 = curl_multi_getcontent($ch2);

// တစ်ခုချင်းစီကိုဖယ်ရှားခြင်းနှင့်ပိတ်ပါ cURL လက်ကိုင်
curl_multi_remove_handle($mh, $ch1);
curl_close($ch1);

curl_multi_remove_handle($mh, $ch2);
curl_close($ch2);

// နောက်ဆုံးအနီးကပ် multi လက်ကိုင်
curl_multi_close($mh);

// ထုတ်ယူခြင်းတုံ့ပြန်မှု
echo "Response 1: " . $response1 . PHP_EOL;
echo "Response 2: " . $response2 . PHP_EOL;
?>

ဘုံအမှားသရုပ်ပြခြင်း (ဒီလိုမလုပ်ပါနဲ့)

သင်ဤကဲ့သို့သောရေးသားထားပါကအန္တရာယ်များရှိလိမ့်မည်။

 <?php
// အမှားသရုပ်ပြ,အနီးကပ်အနီးကပ် multi 再关闭单个လက်ကိုင်
$ch = curl_init("https://gitbox.net/api/endpoint");
$mh = curl_multi_init();
curl_multi_add_handle($mh, $ch);

// ကရိယာတန်းဆာ请求
$running = null;
do {
    curl_multi_exec($mh, $running);
} while ($running > 0);

// အမှား!တိုက်ရိုက်ပိတ်ပါ multi လက်ကိုင်
curl_multi_close($mh);

// ထို့နောက်တစ်ခုတည်းကိုပိတ်ပါ cURL(၎င်းသည်မမှန်ကန်သောအရင်းအမြစ်များကိုလက်လှမ်းမီစေနိုင်သည်)
curl_close($ch);
?>

ဤကုဒ်တွင် curl_multi_close ဟုခေါ်သည်။ ဆက်စပ်သောစီမံခန့်ခွဲမှုအရင်းအမြစ်များကိုထုတ်ပြန်သည်။ curl_close ($ ch) ကိုလိုက်နာပါကအမှားတစ်ခုသည်အချိန်အများစုကိုချက်ချင်းသတင်းပို့လိမ့်မည်မဟုတ်သော်လည်းအချို့သောပတ်ဝန်းကျင်တွင်အမှားအယွင်းများကိုဖြစ်ပေါ်စေနိုင်သည်။

အကျဉ်းချုပ်

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

  • ပထမ ဦး ဆုံးဖယ်ရှားပါ ( curl_multi_remove_handle )

  • တစ်ခုတည်းသော Single ( curl_close )

  • နောက်ဆုံးတွင် Multi ( curl_multi_close )

သငျသညျဤအခြေခံစည်းမျဉ်းကိုကျွမ်းကျင်မှုအဖြစ်နေသမျှကာလပတ်လုံး, သင်ယုံကြည်စိတ်ချစွာဖြင့် curl multi- ချည်တောင်းဆိုမှုများကိုသုံးနိုင်သည်။