လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Time_Nanosleep နှင့် PHP Timer function ကိုဖန်တီးပါ

Time_Nanosleep နှင့် PHP Timer function ကိုဖန်တီးပါ

gitbox 2025-05-28

PHP တွင် Timer function ကိုအကောင်အထည်ဖော်ရန်နည်းလမ်းများစွာရှိသည်။ Time_Nanosleep function သည်အလွန်တိကျသောအိပ်စက်ခြင်းသည် scripts များကိုသတ်မှတ်ထားသောစက္ကန့်ပိုင်းနှင့် nanoseconds များကိုသေဒဏ်ချမှတ်ရန်ခွင့်ပြုသည့်အလွန်တိကျသောအိပ်စက်ခြင်းဖြစ်သည်။ ရိုးရှင်းသော timer တစ်ခုဖန်တီးရန် The Time_Nanosleep function ကိုမည်သို့အသုံးပြုရမည်ကိုဤဆောင်းပါးတွင်အသေးစိတ်ရှင်းပြပါမည်။

Time_Nanosleep ဆိုတာဘာလဲ။

Time_Nanosleep function ကိုသတ်မှတ်ထားသောအချိန်ကိုလက်ရှိ Exited Script ဖြင့်ခေတ္တရပ်တန့်ရန်အသုံးပြုသည်။ အချိန်ယူနစ်များတွင်စက္ကန့်များနှင့် nanoseconds များပါဝင်သည်။ Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 bool time_nanosleep(int $seconds, int $nanoseconds)
  • $ စက္ကန့် - စက္ကန့်အနည်းငယ်သာခေတ္တရပ်တန့်ပြီးအနုတ်လက်ခဏာမဟုတ်သောကိန်းဂဏန်း။

  • $ nanoseconds - 0 မှ 999,999999 အထိအထိ nanoseconds အရေအတွက်ကိုဆိုင်းငံ့ထားသည်။

ပုံမှန်အိပ်စက်ခြင်းပြီးစီးကြောင်းညွှန်ပြရန် function ကို မှန်ကန်စွာ ပြန်ဖွင့်သည်

ကြည့်ရှုပါ

TIME_NANOSESEP သည်စောင့်ဆိုင်းနေသည့်အချိန်ကိုတိကျသောထိန်းချုပ်မှုကိုတိရိယရှိနိုင်သည့်အခြေအနေများအတွက်အလွန်သင့်လျော်သည်။

  • မြင့်မားသော - တိကျစွာ timer ကိုအကောင်အထည်ဖော်ပါ

  • ကွပ်မျက်ကြိမ်နှုန်းကိုထိန်းချုပ်ပါ

  • CPU ပျင်းရိကိုရှောင်ကြဉ်ခြင်းနှင့်အရင်းအမြစ်စွန့်ပစ်ပစ္စည်းများကိုလျှော့ချပါ

ရိုးရှင်းသော timer ဥပမာတစ်ခုအကောင်အထည်ဖော်ခြင်း

အောက်ပါဥပမာတွင်ကျွန်ုပ်တို့သည်အချိန်ကုန်လွန်သည့်အချိန်အထိ 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);

code parsing

  • မြင့်မားသောတိကျသောလက်ရှိအချိန်ကိုရရှိရန် 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 ကြိမ်တန်းစီထားရန်တောင်းဆိုသည်။