ဖွံ့ဖြိုးရေးစဉ်အတွင်းကျွန်ုပ်တို့သည်အချက်အလက်အမြောက်အများကိုပြုလုပ်ရန်လိုအပ်သည်။ တစ်ချိန်တည်းတွင်ဒေတာများများစွာလုပ်ဆောင်ခြင်းသည်အချိန်များစွာယူရုံသာမကမှတ်ဉာဏ်ပြည့်ဝစေနိုင်သည်။ စွမ်းဆောင်ရည်နှင့်အသုံးပြုသူအတွေ့အကြုံတိုးတက်စေရန်ကျွန်ုပ်တို့သည်ပိတ်ပင်တားဆီးမှုအပြောင်းအလဲများကိုချမှတ်နိုင်သည်။ Array_chunk သည် PHP တွင်တည်ဆောက်ထားသောအလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ asynchronous စစ်ဆင်ရေးများနှင့်ပေါင်းစပ်ပြီးကျွန်ုပ်တို့သည် chunking နေစဉ်အစီအစဉ်၏ကွပ်မျက်မှုစွမ်းဆောင်ရည်ကိုတိုးတက်စေနိုင်သည်။
array_chunk သည် PHP Array လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်း၏ function သည်ခင်းကျင်းသောအရာများကိုသတ်မှတ်ထားသောဒြပ်စင်တစ်ခုစီပါ 0 င်သောသေးငယ်သည့်အရာတစ်ခုစီသို့ခင်းကျင်းမှုများစွာကိုခွဲထားရန်ဖြစ်သည်။ ဤလုပ်ဆောင်ချက်သည်များစွာသောအချက်အလက်များလိုအပ်သည့်အခြေအနေများအတွက်အလွန်သင့်လျော်ပြီးမှတ်ဉာဏ်အသုံးပြုမှုကိုထိရောက်စွာလျှော့ချနိုင်သည်။
function ရှေ့ပြေးပုံစံ:
array_chunk(array $array, int $size, bool $preserve_keys = false): array
$ array : chunked ခံရဖို့ Array ။
$ အရွယ်အစား - သေးငယ်တဲ့ array တစ်ခုစီ၏အရွယ်အစား။
$ Present_Keys : မူရင်းခင်း ကျင်း မှု၏သော့အမည်ကိုထိန်းသိမ်းရန်ဖြစ်စေ,
ကျွန်ုပ်တို့တွင်ဒေတာ 1000 တွင်ခင်းကျင်းမှုတစ်ခုရှိပြီး၎င်းကိုသေးငယ်သောအရာတစ်ခုစီပါ 0 င်သောအသေးအဖွဲ 10 ခုစီခွဲရန် array_chunk ကို အသုံးပြုသည်ဆိုပါစို့။
<?php
$data = range(1, 1000); // ဖြစ်ပါှးစေ1ရောက်လာ1000၏ခင်းကျင်း
$chunkedData = array_chunk($data, 100);
print_r($chunkedData);
?>
ရလဒ်ရလဒ် -
Array
(
[0] => Array ( [0] => 1 [1] => 2 ... [99] => 100 )
[1] => Array ( [0] => 101 [1] => 102 ... [99] => 200 )
...
)
ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်ကြီးမားသော array ကို ဒေါ်လာဒေတာများကို သေးငယ်သောပြ arrays များအဖြစ်ခွဲဝေသည်။ တစ်ခုချင်းစီတွင်ခင်းကျင်းမှုတစ်ခုစီတွင်ဒြပ်စင် 100 ရှိသည်။
Array_Chunk ကိုအသုံးပြုပြီးနောက်ကြီးမားသောအချက်အလက်များကိုပိတ်ဆို့ရန်ကျွန်ုပ်တို့သည်စွမ်းဆောင်ရည်တိုးတက်စေရန် Assynchronous စစ်ဆင်ရေးများကိုထပ်မံပေါင်းစပ်နိုင်သည်။ ပြတ်တောင်းပြတ်တောင်းစစ်ဆင်ရေးများသည်အပြိုင်ဖြင့်လုပ်ဆောင်မှုများကိုပြုလုပ်ရန်အလုပ်များစွာကိုပြုလုပ်နိုင်ပြီးပိတ်ဆို့ခြင်းကိုရှောင်ရှားနိုင်သည်။ ပြတ်တောင်းပြတ်တောင်းစစ်ဆင်ရေးများကို PHP တွင်အသုံးချနိုင်ပြီးအသုံးအများဆုံးနည်းလမ်းမှာ curl_multi_exec သို့မဟုတ် PHP async extension ကိုသုံးရန်ဖြစ်သည်။
STTP တောင်းဆိုမှုများမှတဆင့် chink တစ်ခုစီ၏အချက်အလက်များကိုကျွန်ုပ်တို့လုပ်ဆောင်လိုပါကမူလပြုပြင်ထုတ်လုပ်ခြင်းနည်းလမ်းသည်ရေရှည်ပိတ်ဆို့မှုကို ဦး တည်သွားစေမည့်တစ်ခုတည်းသောတောင်းဆိုမှုကိုစတင်ရန်ဖြစ်နိုင်သည်ဆိုပါစို့။ ကျွန်ုပ်တို့သည်နောက်ခံတွင်တစ်ချိန်တည်းတွင်တောင်းဆိုမှုများကိုစတင်ရန်တောင်းဆိုမှုများကိုအစပြုရန်ပြတ်တောင်းပြတ်တောင်းတောင်းဆိုမှုများကိုအသုံးပြုနိုင်သည်။
<?php
$data = range(1, 1000); // ကြီးမားသောဒေတာကိုတုပ
$chunkedData = array_chunk($data, 100); // အပြောင်းအလဲနဲ့ပိတ်ပင်တားဆီးမှု
// ဖြစ်ပေါ်လာခြင်း cURL multi handle
$mh = curl_multi_init();
// တစ်ခုချင်းစီကိုတောင်းဆိုမှုကိုကယ်တင်ရန်အသုံးပြုလက်ကိုင်
$curlHandles = [];
// ဒေတာတစ်ခုချင်းစီကို ဖြတ်. ကြားနာ,asnchronously တောင်းဆိုမှုကိုအစပြု
foreach ($chunkedData as $index => $chunk) {
$url = "http://m66.net/api/process_data"; // မှတ်ယူခြင်းAPIစကားပေြာဟော
$postData = json_encode(['data' => $chunk]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 添加ရောက်လာ multi handle အလယ်ပိုင်း
curl_multi_add_handle($mh, $ch);
$curlHandles[$index] = $ch;
}
// ပြတ်တောင်းပြတ်တောင်းတောင်းဆိုမှုများပြုလုပ်ပါ
do {
$multiExec = curl_multi_exec($mh, $running);
if ($running) {
curl_multi_select($mh);
}
} while ($running);
// တုန့်ပြန်အကြောင်းအရာကိုရယူပါ
foreach ($curlHandles as $index => $ch) {
$response = curl_multi_getcontent($ch);
echo "Response from chunk {$index}: " . $response . "\n";
// တစ်ခုချင်းစီကိုတောင်းဆိုမှုကိုလက်ကိုင်ပိတ်ပါ
curl_multi_remove_handle($mh, $ch);
}
// ရုပ်သိမ်းခြင်း multi handle
curl_multi_close($mh);
?>
ဤဥပမာတွင် curl_multi_exec ကို အသုံးပြု. Curl_Multi_exec ကိုအသုံးပြုသည်။ ဒေတာပိတ်ပင်တားဆီးမှုတစ်ခုချင်းစီသည် curl မှတစ်ဆင့်တောင်းဆိုမှုကိုစတင်ရန်နှင့်၎င်းကိုအပြိုင်တွင်ပြုလုပ်သည်။
စောင့်ဆိုင်းချိန်ကိုလျှော့ချပါ ။ asynchronous စစ်ဆင်ရေးများသည်တစ်ချိန်တည်းတွင်တောင်းဆိုမှုများကိုတစ်ချိန်တည်းတွင်လုပ်ဆောင်နိုင်ပြီးတစ်ချိန်တည်းတွင်တစ်ချိန်တည်းတွင်စောင့်ဆိုင်းနေသည့်အချိန်ကိုရှောင်ရှားနိုင်သည်။
စွမ်းဆောင်ရည်တိုးတက်စေရန်အတွက် - I / O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-OUTS)
အရင်းအမြစ်အသုံးပြုမှုကိုအကောင်းဆုံးဖြစ်အောင်လုပ်ပါ ။ CPU နှင့်ကွန်ယက် bandwidth ကိုအသုံးချခြင်းကိုပိုမိုကောင်းမွန်စေရန် Memory Outflow ပြ issues နာများကိုရှောင်ကြဉ်ပါ။
အမှားကိုင်တွယ်ခြင်း - ပြတ်ပြတ်သားသားလုပ်ဆောင်မှုများတွင်အမှားအယွင်းများကိုအထူးအရေးကြီးသည်။ တောင်းဆိုမှုတစ်ခုစီ၏အောင်မြင်မှုနှင့်ကျရှုံးမှုကိုအချိန်မီပြုလုပ်နိုင်ရန်သေချာစေရန်လိုအပ်သည်။
အရင်းအမြစ်ကန့်သတ်ချက်များ - ပြတ်တောင်းပြတ်တောင်းစစ်ဆင်ရေးများသည်စွမ်းဆောင်ရည်ကိုတိုးတက်ကောင်းမွန်စေသော်လည်းအကန့်အသတ်မရှိ။ တောင်းဆိုမှုများအရေအတွက်သည်ဆာဗာ၏စွမ်းဆောင်ရည်ထက်မကျော်လွန်ကြောင်းသေချာပါစေ။
ဒေတာရှေ့နောက်ညီညွတ်မှု - ပြတ်တောင်းပြတ်တောင်းပြုပြင်ရေးတွင်အချက်အလက်များအပေးအယူတစ်ခုစီ၏အပြောင်းအလဲအတွက်အမိန့်သည်နောက်ဆုံးရလဒ်ကိုမထိခိုက်ပါ။
Array_chunk function ကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကြီးမားသောဒေတာများကို chunk လုပ်ပြီးမှတ်ဉာဏ်အသုံးပြုမှုကိုလျှော့ချနိုင်သည်။ asynchronous operations (ဥပမာ curl_multi_exec ) နှင့်ပေါင်းစပ်ပြီး (ဥပမာ curl_multi_exec) ကိုကျွန်ုပ်တို့တစ်ချိန်တည်းတွင်လုပ်ဆောင်နိုင်ပြီးအစီအစဉ်၏စွမ်းဆောင်ရည်ကိုပိုမိုတိုးတက်စေနိုင်သည်။ အချက်အလက်အမြောက်အများကိုပြုပြင်သောအခါဤနည်းလမ်းသည်အထူးသဖြင့်ကွန်ယက်တောင်းဆိုမှုများသို့မဟုတ် I / O / I / O စစ်ဆင်ရေးများလိုအပ်သည့်နေရာများတွင်အသုံးပြုသူ၏အတွေ့အကြုံကိုသိသိသာသာတိုးတက်စေနိုင်သည်။