curl_share_init () သည်မျှဝေထားသောအရင်းအမြစ်များကိုစတင်ရန်လုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ၎င်းသည်အချို့သောအရင်းအမြစ်များကိုဝေမျှရန် curl session များ (i.e. curl တောင်းဆိုမှုများ) ကို (I.E. curl တောင်းဆိုမှုများ) ကိုကြည့်ရှုရန်ခွင့်ပြုသည်။
သယံဇာတ ခွဲဝေမှု
စွမ်းဆောင်ရည် optimization : မျှဝေခြင်းဆက်သွယ်မှုနှင့် session အချက်အလက်များသည်တောင်းဆိုမှုတစ်ခုအတွက်အရင်းအမြစ်သုံးစွဲမှုကိုလျှော့ချပြီးထပ်တူကွန်ယက်ချိတ်ဆက်မှုတည်ဆောက်ခြင်းလုပ်ငန်းစဉ်များကိုရှောင်ရှားသည်။
တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများအတွက်ပံ့ပိုးမှု - curl_share_init () သည် သယံဇာတများကိုပေါင်းစပ်ထားသောတစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများတွင်သယံဇာတမျှဝေခြင်းကိုနားလည်နိုင်။ ချည်မျှင်ပေါင်းစုံတောင်းဆိုမှုများကိုပိုမိုထိရောက်စေသည်။
ကျွန်ုပ်တို့သည် http တောင်းဆိုမှုစစ်ဆင်ရေးမျိုးစုံလုပ်ဆောင်သော PHP script ကိုတီထွင်နေပြီးသယံဇာတခွဲဝေမှုရရှိရန် curl_share_init () ကို အသုံးပြုရန်မျှော်လင့်ပါသည်။ ဤတွင်အခြေခံအကောင်အထည်ဖော်မှုအဆင့်ဖြစ်သည်။
မျှဝေထားသောအရင်းအမြစ်များကို အစပြု .
Curl_Share_init () ကို သုံး. မျှဝေထားသောအရင်းအမြစ်များကို အစပြု. curl session များနှင့်ဝေမျှရန်သူတို့ကိုဝေမျှရန်အသုံးပြုပါ။
တောင်းဆိုမှုတစ်ခုစီအတွက်မျှဝေထားသောအရင်းအမြစ်များကိုတပ်ဆင်ပါ ။
Curl တောင်းဆိုမှုတစ်ခုစီတွင် curl_share_setopt () ကိုအသုံးပြုပါ။
တောင်းဆိုမှုကိုလုပ်ဆောင်ပါ ။
Curl_multi_exec () ကို အပြိုင်အပြိုင်ဖြင့်ပြုလုပ်ရန် တောင်းဆိုမှုများ ကိုအသုံးပြုပါ။
အရင်းအမြစ်များကိုသန့်ရှင်းရေး :
တောင်းဆိုမှုပြီးဆုံးသွားသောအခါမျှဝေထားသောအရင်းအမြစ်နှင့် ဆံပင် ကောက်ကောက်ကိုထုတ်ပြန်ခြင်းကိုဖြန့်ချိခဲ့သည်။
<?php
// မျှဝေထားသောအရင်းအမြစ်များကိုစတင်ပါ
$share = curl_share_init();
// မျှဝေထားသောအရင်းအမြစ်များကို set up,ကဲ့သို့ DNS သိုကာတာ,cookie စောင့်
curl_share_setopt($share, CURLSHOPT_SHARE, CURLSHARE_SSL);
$urls = [
"http://m66.net/api/endpoint1",
"http://m66.net/api/endpoint2",
"http://m66.net/api/endpoint3",
];
// ဖန်တီး cURL မျိုးစုံ session ကိုလက်ကိုင်
$multi_handle = curl_multi_init();
$curl_handles = [];
foreach ($urls as $url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SHARE, $share); // မျှဝေထားသောအရင်းအမြစ်များကို set up
curl_multi_add_handle($multi_handle, $ch);
$curl_handles[] = $ch;
}
// အားလုံးလုပ်ဆောင် cURL မေးမြန်း
$running = null;
do {
curl_multi_exec($multi_handle, $running);
curl_multi_select($multi_handle);
} while ($running > 0);
// 获取每个မေးမြန်း的响应内容
foreach ($curl_handles as $ch) {
$response = curl_multi_getcontent($ch);
echo "Response: " . $response . "\n";
curl_multi_remove_handle($multi_handle, $ch);
curl_close($ch);
}
// မျှဝေထားသောအရင်းအမြစ်များကိုသန့်ရှင်းရေးနှင့် cURL ရုံးထိုင်အချိန်ကာလ
curl_share_close($share);
curl_multi_close($multi_handle);
?>
Shared Resource Initialization : curl_share_init () ကိုသုံးပါ။ ထို့နောက် curl_share_setopt () ကိုသုံးပြီး SSL ဆက်သွယ်မှု, ကွတ်ကီးများ, ကွတ်ကီးများ, DNS cache စသည်ဖြင့်)
မျှဝေထားသောအရင်းအမြစ်များကိုတည်ဆောက်ခြင်း - curl_settopt ($ ch, curlopt_share, $ share) မှတစ်ဆင့်ယခင်ကအစပျိုးထားသောအရင်းအမြစ်များကိုမျှဝေရန် session တစ်ခုစီကိုသတ်မှတ်ထားပါ။
တစ်ပြိုင်တည်းတောင်းဆိုမှုကွပ်မျက်ခြင်း - curl_multi_exec () နှင့် curl_multi_select () နှင့် curl_multi_select () နှင့် curl_multi_select () ကို သုံးပါ။ curl_multi_exec () သည် တောင်းဆိုမှုများအားလုံးကို execute လုပ်လိမ့်မည်။
တုန့်ပြန်မှုအပြောင်းအလဲနဲ့သန့်ရှင်းရေးလုပ်ခြင်း - တောင်းဆိုမှုအားလုံးကိုအကောင်အထည်ဖော်ပြီးနောက်တောင်းဆိုမှုတစ်ခုစီ၏တုန့်ပြန်မှုအကြောင်းအရာများကို curl_multi_getcontent () မှတစ်ဆင့်ရရှိသည်။
ဆက်သွယ်မှုဖန်တီးမှု overhead ကိုလျှော့ချပါ ။ Curl session တစ်ခုစီသည်တူညီသောဆက်သွယ်မှုရေကူးကန်ကိုမျှဝေသည်။ အထူးသဖြင့်တစ်ပြိုင်တည်းတောင်းဆိုမှုများကိုအထူးသဖြင့်တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများရှိသည်။
Thread ဘေးကင်းလုံခြုံမှုပြ issues နာများ - curl_share_init () နှင့်ဆက်စပ်သောစစ်ဆင်ရေးများသည်ပတ် 0 န်းကျင်တွင်အရင်းအမြစ်များကိုထည့်သွင်းစဉ်းစားသော်လည်းတစ်ပြိုင်နက်တည်းပ conflicts ိပက်ခများကိုရှောင်ရှားနိုင်ရန်တစ်ပြိုင်နက်တည်းဝင်ရောက်ခွင့်ကိုစနစ်တကျရယူနိုင်ရန်သေချာစေရန်လိုအပ်သည်။ ယေဘုယျအားဖြင့်စကားပြောခြင်းသည် ဆံပင်ကောက် ကောက်များအကြားမျှဝေခြင်းသည်ကြိုးမဲ့ဖြစ်သည်။
မှတ်ဉာဏ်နှင့်အရင်းအမြစ်စီမံခန့်ခွဲမှု - တောင်းဆိုမှုအမြောက်အများကိုတောင်းဆိုမှုများစွာတွင်အရင်းအမြစ်များနှင့် curl sessions များကိုပြန်လည်မှတ်ဉာဏ်ယိုစိမ့်မှုကိုရှောင်ရှားရန်ပြီးဆုံးသွားသောအခါ,
Multi-Threaded Php ပတ်ဝန်းကျင်တွင် curl_share_init () function သည်ထိရောက်သောသယံဇာတမျှဝေခြင်းနှင့်စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်ရန်အတွက်အရေးကြီးသောကိရိယာတစ်ခုဖြစ်သည်။ ခွဲဝေထားသောအရင်းအမြစ်များကိုအသုံးပြုရန်အတွက်ပုံတူပွားခြင်းနှင့်အရင်းအမြစ်စွန့်ပစ်ပစ္စည်းများကိုရှောင်ရှားခြင်းအားဖြင့်ပုံတူပွားခြင်းနှင့်အရင်းအမြစ်စွန့်ပစ်ပစ္စည်းများကိုရှောင်ရှားနိုင်ပြီးတစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများ၏ထိရောက်မှုကိုတိုးတက်စေနိုင်သည်။ အထူးသဖြင့်တစ်ပြိုင်နက်တည်းတစ်ပြိုင်နက်တည်းဖြစ်စဉ်များတွင်အထူးသဖြင့်တစ်ပြိုင်နက်တည်းကြုံတွေ့ရသောဖြစ်ရပ်များတွင်မကြာခဏ http တောင်းဆိုမှုများအတွက်လိုအပ်သည့်အပလီကေးရှင်းများအတွက် curl ၏မျှဝေခြင်းယန္တရားသည်စွမ်းဆောင်ရည်နှင့်တုံ့ပြန်မှုမြန်နှုန်းကိုထိထိရောက်ရောက်တိုးတက်စေနိုင်သည်။