ခေတ်သစ်အလွန်အမင်းမြင့်မားသောတစ်ပြိုင်နက်တည်း web ဖွံ့ဖြိုးတိုးတက်မှုတွင် API တောင်းဆိုမှုများသည် HTTP ဆက်သွယ်မှုအမြောက်အများကိုကိုင်တွယ်ရန်လိုအပ်သည်။ ထိရောက်မှုကိုတိုးတက်စေရန်နှင့်ဆက်သွယ်မှုများကိုထူထောင်ခြင်းနှင့်ဖျက်ဆီးခြင်းကုန်ကျစရိတ်ကိုလျှော့ချရန်, ဆက်သွယ်မှုပြန်လည်အသုံးပြုခြင်းသည်အထူးအရေးကြီးသည်။ PHP ၏ ဆံပင်ကောက်ခံမှု စာကြည့်တိုက်နှင့် SWOOLE သည်ထိရောက်သောဖြေရှင်းနည်းများကိုပေးသည်။ HTTP တောင်းဆိုမှုများကိုထိရောက်စွာသဘောပေါက်ရန်နှင့်စနစ်၏တစ်ပြိုင်နက်တည်းလုပ်ဆောင်မှုကိုထိရောက်စွာသဘောပေါက်ရန် curl_upkeep () function ကို SWOOLE နှင့် တွဲဖက်. အသုံးပြုသည်။
ဤဆောင်းပါးသည် curl_upkeep () function ကိုမည်သို့အသုံးပြုရမည်ကို SWoole နှင့်ထိရောက်သောချိတ်ဆက်မှုများကိုပိုမိုထိရောက်စွာရရှိရန်မည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးပြီးမလိုအပ်သောဆက်သွယ်မှု overhead ကိုလျှော့ချရန်နှင့်လျှောက်လွှာစွမ်းဆောင်ရည်တိုးတက်လာသည်
HTTP တောင်းဆိုမှုများကိုပြုလုပ်သောအခါ TCP ဆက်သွယ်မှုအသစ်သည်တောင်းဆိုမှုတစ်ခုစတင်ရန်လိုအပ်သည်။ ဆက်သွယ်မှုတစ်ခုစီတိုင်းဒေတာများကိုထုတ်လွှင့်သည်နှင့်ဆက်သွယ်မှုကိုပိတ်ထားသည်, ၎င်းသည်အချိန်နှင့်အရင်းအမြစ်များကိုစားသုံးသည်။ ဆက်သွယ်မှုခိုင်းခြင်းသည်ရှည်လျားသောဆက်သွယ်မှုများကိုထိန်းသိမ်းခြင်းနှင့်ပိုမိုကောင်းမွန်သောဆက်သွယ်မှုများကိုမကြာခဏတည်ဆောက်ခြင်းနှင့်အလုံးစုံစွမ်းဆောင်ရည်ကိုတိုးတက်အောင်လုပ်ခြင်းနှင့်ပိုမိုကောင်းမွန်သောစွမ်းဆောင်ရည်ကိုတိုးတက်အောင်လုပ်ခြင်းနှင့်ပိုမိုကောင်းမွန်သောစွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်နှင့်အလုံးစုံစွမ်းဆောင်ရည်ကိုတိုးတက်စေရန် overhead ကိုလျှော့ချခြင်းဖြင့်ဆက်သွယ်မှုမျိုးစုံကိုမျှဝေရန်တောင်းဆိုမှုများကိုမျှဝေရန်တောင်းဆိုမှုများကိုခွင့်ပြုသည်။
curl_upkeep () () သည် target server သို့ဆက်သွယ်မှုကိုဆက်လက်လုပ်ဆောင်နိုင်သည့်စိတ်ကြိုက်လုပ်ဆောင်ချက်တစ်ခုဖြစ်ပြီးနောက်ဆက်တွဲတောင်းဆိုမှုများတွင်တူညီသောဆက်သွယ်မှုကိုပြန်လည်အသုံးပြုနိုင်သောကြောင့်ဖြစ်သည်။ curl_upkeep ကို အသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်တောင်းဆိုသည့်အချိန်တိုင်းတွင်ဆက်သွယ်မှုကိုပြန်လည်တည်ဆောက်ခြင်းကိုရှောင်ရှားနိုင်သည်။
function curl_upkeep($url, $timeout = 30) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Connection: keep-alive', // အသုံးပြု keep-alive ဉီးခေါင်း
]);
curl_exec($ch);
curl_close($ch);
}
အထက်ပါကုဒ်သည်ဆာဗာနှင့်ရှည်လျားသောဆက်သွယ်မှုကိုထိန်းသိမ်းရန် curl_upkeep () function ကိုမည်သို့အသုံးပြုရမည်ကိုပြသသည်။ Connection ကို setting လုပ်ခြင်းအားဖြင့် - Keep- အသက်ရှင်သော ခေါင်းစီးသည်သင်တောင်းဆိုသည့်အခါတိုင်းဆက်သွယ်မှုကိုပြန်လည်တည်ဆောက်ခြင်းထက် connection ကိုထိန်းသိမ်းရန်ဆာဗာကိုပြောပါ။
SWOSE သည် Coroutine, Asynchronous IO, Multi-Threading နှင့်အခြားလုပ်ဆောင်မှုများကိုထောက်ပံ့ပေးသောစွမ်းဆောင်ရည်မြင့်မားသော PHP extension တစ်ခုဖြစ်သည်။ SWOOLE ကို curl_upkeep () function ကို တွဲဖက်. အသုံးပြုသောအခါတစ်ပြိုင်နက်တည်း http တောင်းဆိုမှုများကိုလုပ်ငန်းစဉ်တစ်ခုတည်းတွင်အကောင်အထည်ဖော်နိုင်ပြီးစနစ်၏စွမ်းဆောင်ရည်ကိုတိုးတက်အောင်ပြုလုပ်နိုင်သည်။
SWOOLE ပတ်ဝန်းကျင်တွင် Corleloutines မှတစ်ဆင့် coroutines များမှတဆင့်တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများကိုအကောင်အထည်ဖော်နိုင်ပြီး curl_upkeep () ကို သုံးနိုင်သည်။ SWOPE သည် CORCHINE HTTP client ကိုထောက်ပံ့ပေးပြီးထိရောက်မှုကိုတိုးတက်စေသည်။
Swoole Coroutine မှတစ်ဆင့်ကျွန်ုပ်တို့သည် HTTP တောင်းဆိုမှုများကိုတစ်ချိန်တည်းတွင် Coroutines မျိုးစုံဖြင့်ဆက်သွယ်မှုများစွာဖြင့်ပြုလုပ်နိုင်ပြီးဆက်နွယ်သောဆက်သွယ်မှုကိုမျှဝေနိုင်သည်။ ဤတွင် SWOOLE Coroutine ကို curl_upkeep နှင့်မည်သို့အသုံးပြုရမည်ကိုဥပမာတစ်ခုရှိသည်။
use Swoole\Coroutine\Http\Client;
Swoole\Coroutine::create(function () {
// ဖြစ်ပေါ်လာခြင်း Swoole HTTP ဖောက်သည်
$client = new Client('m66.net', 80);
$client->set([
'timeout' => 3,
'keepalive' => true, // ရှည်လျားသောဆက်သွယ်မှုကိုဖွင့်ပါ
]);
// ပေးပို့ GET မေးမြန်း
$client->get('/path/to/resource');
// ချိတ်ဆက်နေပါ
curl_upkeep('http://m66.net/path/to/resource');
// ထုတ်ယူခြင်းတုံ့ပြန်မှု
echo $client->body;
$client->close();
});
ဤဥပမာတွင် SWoole ၏ Coroutine HTTP client ကိုတောင်းဆိုမှုများကိုဆက်လက်လုပ်ဆောင်ရန်နှင့် curl_upkeep () ကိုအသုံးပြုသည်။ KEASTAREVERIVERIVED ကို ဖွင့်ခြင်းအားဖြင့် 0 န်ဆောင်မှုခံယူသူသည်ဆာဗာနှင့်ဆက်သွယ်မှုကိုထိန်းသိမ်းထားသည်။
ဆက်သွယ်မှုခုံးများ၏အားသာချက်များကိုအပြည့်အဝအသုံးချရန်တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများအကြား ဆံပင် ကောက်ကောက်များကိုလည်းမျှဝေနိုင်သည်။ အထူးသဖြင့် cursetines သို့မဟုတ် coroutines သို့မဟုတ်တောင်းဆိုမှုများအကြားဆက်နွယ်မှုကိုပြန်လည်သုံးသပ်ရန်အတွက်ဝေမျှထားသော curl အရင်းအမြစ်ရေကန်ကိုအသုံးပြုနိုင်သည်။
use Swoole\Coroutine\Pool;
$pool = new Pool(10); // ဆက်သွယ်မှုရေကန်တစ်ခုဖန်တီးပါ,အများဆုံးအထောက်အပံ့ 10 Coroutine တစ်ခုချင်းစီကိုတစ်ပြိုင်နက်တည်းကွပ်မျက်ခံရသည်
Swoole\Coroutine::create(function () use ($pool) {
$client = $pool->get(); // connection pool မှပျင်းရိဆက်သွယ်မှုကိုရယူပါ
$client->get('http://m66.net/path/to/resource');
$pool->put($client); // connection ကို connection pool သို့ပြန်သွားပါ
});
Curl_upkeep () function ကိုအသုံးပြုခြင်းနှင့် SWOOLE Coroutine ကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဆက်သွယ်မှုမြှောက်အမြစ်များကိုထိရောက်စွာအကောင်အထည်ဖော်နိုင်ပြီးစနစ်၏ throughput နှင့် response speed ကိုများစွာတိုးတက်အောင်လုပ်နိုင်သည်။ SWOOLE ၏ adole iso feature နှင့်ပေါင်းစပ်ပြီး SWOOLE ၏ HTTP တောင်းဆိုမှုများသည်အပိုဆောင်းအရင်းအမြစ်သုံးစွဲမှုကိုမထည့်သွင်းဘဲတစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများကိုကိုင်တွယ်နိုင်သည်။
ဤနည်းပညာများကို အသုံးပြု. developer များသည်အလွန်အမင်းတစ်ပြိုင်နက်တည်း 0 န်ဆောင်မှုများကိုအလွယ်တကူကိုင်တွယ်ဖြေရှင်းနိုင်ပြီးစနစ်၏စွမ်းဆောင်ရည်ကိုတိုးတက်စေနိုင်သည်။ ဆက်သွယ်မှုခွေပိုးမွှားများသည်ပြင်ပ API ခေါ်ဆိုမှုအမြောက်အများကိုကိုင်တွယ်သောအခါအလွန်လက်တွေ့ကျသောအကောင်းဆုံးနည်းဗျူဟာဖြစ်သည်။