PHP တွင် Timer function ကိုအကောင်အထည်ဖော်ရန်နည်းလမ်းများစွာရှိသည်။ Time_Nanosleep function သည်အလွန်တိကျသောအိပ်စက်ခြင်းသည် scripts များကိုသတ်မှတ်ထားသောစက္ကန့်ပိုင်းနှင့် nanoseconds များကိုသေဒဏ်ချမှတ်ရန်ခွင့်ပြုသည့်အလွန်တိကျသောအိပ်စက်ခြင်းဖြစ်သည်။ ရိုးရှင်းသော timer တစ်ခုဖန်တီးရန် The Time_Nanosleep function ကိုမည်သို့အသုံးပြုရမည်ကိုဤဆောင်းပါးတွင်အသေးစိတ်ရှင်းပြပါမည်။
Time_Nanosleep function ကိုသတ်မှတ်ထားသောအချိန်ကိုလက်ရှိ Exited Script ဖြင့်ခေတ္တရပ်တန့်ရန်အသုံးပြုသည်။ အချိန်ယူနစ်များတွင်စက္ကန့်များနှင့် nanoseconds များပါဝင်သည်။ Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
bool time_nanosleep(int $seconds, int $nanoseconds)
$ စက္ကန့် - စက္ကန့်အနည်းငယ်သာခေတ္တရပ်တန့်ပြီးအနုတ်လက်ခဏာမဟုတ်သောကိန်းဂဏန်း။
$ nanoseconds - 0 မှ 999,999999 အထိအထိ nanoseconds အရေအတွက်ကိုဆိုင်းငံ့ထားသည်။
ပုံမှန်အိပ်စက်ခြင်းပြီးစီးကြောင်းညွှန်ပြရန် function ကို မှန်ကန်စွာ ပြန်ဖွင့်သည် ။
TIME_NANOSESEP သည်စောင့်ဆိုင်းနေသည့်အချိန်ကိုတိကျသောထိန်းချုပ်မှုကိုတိရိယရှိနိုင်သည့်အခြေအနေများအတွက်အလွန်သင့်လျော်သည်။
မြင့်မားသော - တိကျစွာ timer ကိုအကောင်အထည်ဖော်ပါ
ကွပ်မျက်ကြိမ်နှုန်းကိုထိန်းချုပ်ပါ
CPU ပျင်းရိကိုရှောင်ကြဉ်ခြင်းနှင့်အရင်းအမြစ်စွန့်ပစ်ပစ္စည်းများကိုလျှော့ချပါ
အောက်ပါဥပမာတွင်ကျွန်ုပ်တို့သည်အချိန်ကုန်လွန်သည့်အချိန်အထိ timestamp တိုင်းသတ်မှတ်ထားသည့်အချိန်ကာလတိုင်းကိုထုတ်လွှင့်သော timer ကိုအကောင်အထည်ဖော်သွားမည်ဖြစ်သည်။
<?php
/**
* ရိုးရှင်းသော timer function ကို,သတ်မှတ်ထားသောကြားကာလမှာတာဝန်များကို execute
*
* @param int $interval_ms ကြားကာလအချိန်,ယူနစ်မီလီစက္ကန်
* @param int $total_duration_ms စုစုပေါင်းအချိန်,ယူနစ်မီလီစက္ကန်
*/
function simple_timer(int $interval_ms, int $total_duration_ms)
{
$start_time = microtime(true);
$elapsed = 0;
while ($elapsed < $total_duration_ms / 1000) {
// အိပ်ချိန်စက္ကန့်များနှင့် nanoseconds တွက်ချက်ပါ
$seconds = intdiv($interval_ms, 1000);
$nanoseconds = ($interval_ms % 1000) * 1000000;
// သတ်မှတ်ထားသောအချိန်အိပ်ပါ
time_nanosleep($seconds, $nanoseconds);
// output ကိုလက်ရှိ timestamp နှင့်အချိန် run
$current_time = microtime(true);
$elapsed = $current_time - $start_time;
echo "Elapsed: " . round($elapsed, 3) . " seconds\n";
}
echo "အချိန်ကုန်ဆုံး!\n";
}
// အခြားတိုင်း 500 မီလီစက္ကန့်အတွင်းတစ်ချိန်က execute,ဆက်ပြောသည် 5 စက်ဏန့်
simple_timer(500, 5000);
မြင့်မားသောတိကျသောလက်ရှိအချိန်ကိုရရှိရန် Microtime (Trust) ကို သုံးပါ။
သတ်မှတ်ထားသောအချိန်အတွက် script ကိုခေတ္တရပ်တန့်ရန် Time_nanosleep ကို ကွင်းဆက်တွင်ခေါ်ဆိုပါ။
Run Time ကိုတွက်ချက်ပြီးပုံနှိပ်ပါ။
အစုံ၏စုစုပေါင်းကြာချိန်အထိရောက်ရှိသည်အထိသံသရာ။
time_nanosleep အချက်ပြခြင်းဖြင့်ကြားဖြတ်နိုင်ပါသည်။ အကယ်. ကပြတ်တောက်သွားရင် function က မှားယွင်းတဲ့ ပြန်လာပြီးသတိပေးချက်တစ်ခုဖြစ်ပေါ်လိမ့်မယ်။ တည်ငြိမ်မှုကိုသေချာစေရန် PCNTL function ကို အသုံးပြု. signal ကိုဖမ်းယူနိုင်သည်။
Nanoseconds ၏တိကျမှုသည် operating system ပေါ်တွင်မူတည်သည်။
အချို့သောပတ်ဝန်းကျင်တွင်, USEEP နှင့် TIME_NANOPELEP ၏တိကျမှုနှင့်အကျိုးသက်ရောက်မှုသည်မတူပါ။
အကယ်. သင်သည် PHP မှတစ်ဆင့်ဝေးလံခေါင်သီသော interface ကိုရယူပြီး timer ကို Perfectic တောင်းဆိုမှုများပြုလုပ်ရန်ပေါင်းစပ်ပါကအောက်ပါကုဒ်နံပါတ်ကိုသုံးနိုင်သည်။
<?php
function fetch_data_periodically($url, $interval_ms, $times)
{
for ($i = 0; $i < $times; $i++) {
// တောင်းဆိုမှုကိုပို့ပါ
$response = file_get_contents($url);
echo "Response #$i: " . substr($response, 0, 50) . "...\n";
// အိပ်နေခြင်း
$seconds = intdiv($interval_ms, 1000);
$nanoseconds = ($interval_ms % 1000) * 1000000;
time_nanosleep($seconds, $nanoseconds);
}
}
$url = "https://gitbox.net/api/data";
fetch_data_periodically($url, 1000, 3);
ဤကုဒ်သည် Gitbox.net တွင် interface ကို 1 စက္ကန့်တိုင်းနှင့် 3 ကြိမ်တန်းစီထားရန်တောင်းဆိုသည်။