PHP တွင်ကျွန်ုပ်တို့သည်ပရိုဂရမ်ကိုအချိန်အတိုင်းအတာတစ်ခုအထိခေတ္တရပ်တန့်ရန်လိုသည်။ များသောအားဖြင့်လူများသည် အိပ်စက်ခြင်း () function ကို သုံး. ဤအရာကိုရရှိရန်အတွက် (သို့သော် အိပ်စက်ခြင်း) သည်စက္ကန့်အနည်းငယ်မျှသာဖြစ်ပြီးစက္ကန့်အနည်းငယ်သည်စက္ကန့်အနည်းငယ်ဖြစ်ပြီး, ယခုအချိန်တွင် PHP သည် Time_Nanosleep () function ကိုထောက်ပံ့ပေးသည်။
TIME_NANOSESEEP () သည်လက်ရှိဖြစ်စဉ်ကိုစက္ကန့်ပိုင်းနှင့် nanoseconds များခေတ္တရပ်တန့်ရန် PHP 5.0.0 နှင့်အထက်တွင်ဖော်ပြထားသော function တစ်ခုဖြစ်သည်။ အိပ်စက်ခြင်း နှင့်နှိုင်းယှဉ်လျှင်၎င်းသည်စက္ကန့်ပိုင်းအထိသာတိကျနိုင်သည်, Time_Nanosleep () သည် ခေတ္တရပ်တန့်ရန်ခေတ္တရပ်တန့်ရန်သင့်အားခွင့်ပြုသည်။
function ကိုအဓိပ္ပါယ်ဖွင့်ဆိုချက်ကိုအောက်ပါအတိုင်းဖြစ်သည် -
bool time_nanosleep(int $seconds, int $nanoseconds)
$ စက္ကန့် - စက္ကန့်အရေအတွက်ကြာချိန်,
$ nanoseconds : Tanoseconds ဆိုင်းငံ့ထားသည့် nanoseconds အရေအတွက်သည် 0 မှ 999,999999999 အထိရှိသည်။
အကယ်. ခေတ္တနားကအောင်မြင်မှုရနိုင်လျှင် function သည် မှန်ကန် ပါက၎င်းသည်အလယ်တွင်အချက်ပြမှုဖြင့်အနှောင့်အယှက်ဖြစ်စေပါကကျန်ရှိသောအချိန်ပါ 0 င်သည့်နေရာတစ်ခုကိုပြန်လည်ရရှိစေသည်။
ဤတွင် 1 စက္ကန့်နှင့် 500 မီလီစက္ကန့်များကိုမည်သို့ခေတ္တ ရပ်တန့်ရန် ပုံဥပမာတစ်ခုဖြစ်ပြီး (i.e. 1.5 စက္ကန့်) -
<?php
echo "စတင်ချိန်:" . microtime(true) . PHP_EOL;
$seconds = 1;
$nanoseconds = 500000000; // 500 မီလီစက္ကန့် = 500,000,000 nonoseconds
if (time_nanosleep($seconds, $nanoseconds)) {
echo "အိပ်စက်အနားယူချိန်:" . microtime(true) . PHP_EOL;
} else {
echo "အိပ်စက်ခြင်းပြတ်တောက်" . PHP_EOL;
}
?>
RAP ရလဒ်သည် 1.5 စက္ကန့်ခန့်ကွာခြားချက်ဖြင့် timestamp ကိုနှစ်ကြိမ်ပြလိမ့်မည်။
အကယ်. time_nanosleep () ကို system signal ကိုကြားဖြတ်လျှင်ကျန်စက္ကန့်များနှင့် nanoseconds များပါ 0 င်သည့် array ကိုပြန်လာလိမ့်မည်။ Time_Nanosleep () ကို ဆက်လက်အိပ်စက်ခြင်းကိုဆက်လက်ထားရှိရန် Return Value အရထပ်မံခေါ်ဆိုနိုင်သည်။ ဥပမာများမှာအောက်ပါအတိုင်းဖြစ်သည် -
<?php
$seconds = 2;
$nanoseconds = 0;
while (true) {
$result = time_nanosleep($seconds, $nanoseconds);
if ($result === true) {
echo "အိပ်ပါ" . PHP_EOL;
break;
} elseif (is_array($result)) {
echo "အိပ်စက်ခြင်းပြတ်တောက်,ကျန်ရှိသောအချိန်:{$result['seconds']}စက်ဏန့် {$result['nanoseconds']}nonoseconds" . PHP_EOL;
$seconds = $result['seconds'];
$nanoseconds = $result['nanoseconds'];
} else {
echo "အိပ်ရန်ပျက်ကွက်ခဲ့သည်" . PHP_EOL;
break;
}
}
?>
ဤစာအရေးအသားသည် signal ကိုအနှောင့်အယှက်ပေးပြီးနောက်ကြိုတင်သတ်မှတ်ထားသောအိပ်စက်ခြင်းအချိန်ကိုဆက်လက်ဖြည့်စွက်နိုင်ကြောင်းသေချာစေသည်။
သင်တောင်းဆိုမှုတစ်ခုစီအကြားမီဒီယာ 200 အတွက်အငြင်းပွားမှုများနှင့်တွဲဖက်ခြင်းဖြင့် တောင်းဆိုခြင်း နှင့် time_nanosleep နှင့် တွဲဖက်. တောင်းခံရန်တောင်းဆိုခြင်းကိုသင်ပို့နိုင်သည်ဆိုပါစို့။ ဤတွင်နမူနာကုဒ်ဖြစ်သည်။
<?php
$urls = [
"https://gitbox.net/api/data1",
"https://gitbox.net/api/data2",
"https://gitbox.net/api/data3",
];
foreach ($urls as $url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo "တောင်းဆိုမှုပျက်ကွက်:" . curl_error($ch) . PHP_EOL;
} else {
echo "တောင်းဆိုမှုအောင်မြင်ခဲ့:" . substr($response, 0, 50) . "..." . PHP_EOL;
}
curl_close($ch);
// ခေတ္တရပ်ဆိုင်းခြင်း 200 မီလီစက္ကန့်
time_nanosleep(0, 200000000);
}
?>
ဤကုဒ်သည် 0 င်ရောက်စွက်ဖက်မှုသုံးခုကိုအလှည့်အပြောင်းတစ်ခုဖြစ်ပြီးတောင်းဆိုမှုတစ်ခုစီပြီးနောက် 200 မီလီစက္ကန့်များအတွက်ခေတ္တရပ်တန့်စေပြီးမကြာခဏတောင်းဆိုမှုများကိုရှောင်ရှားရန်ဖြစ်သည်။
Time_Nanosleep () PHP အစီအစဉ်များကိုစက္ကန့်ပိုင်းနှင့် nanosecond တိကျသော PHP အစီအစဉ်များကိုခေတ္တရပ်ရန်ခွင့်ပြုသည်။
၎င်းသည်ရိုးရာ အိပ်စက်ခြင်း () နှင့် USEEP () ထက် ပို. ပြောင်းလွယ်ပြင်လွယ်သည်။
ပရိုဂရမ်၏ကြံ့ခိုင်မှုကိုသေချာစေရန်အချက်ပြကြားဖြတ်မှုကိုကိုင်တွယ်ရန်ဂရုပြုပါ။
Time_Nanosleep () မြန်နှုန်းကန့်သတ်ခြင်း,
အချိန်အားဖြင့် time_nanosleep ကို အသုံးပြု. () တွင်သင်၏ PHP application များသည်အချိန်ထိန်းချုပ်မှုတွင်ပိုမိုတိကျပြီးထိရောက်မှုရှိနိုင်သည်။