လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Task Execution Time ကိုတိကျစွာထိန်းချုပ်ရန် GettingoOfDay နှင့် Sleeping Functions ကိုမည်သို့ပေါင်းစပ်မည်နည်း။

Task Execution Time ကိုတိကျစွာထိန်းချုပ်ရန် GettingoOfDay နှင့် Sleeping Functions ကိုမည်သို့ပေါင်းစပ်မည်နည်း။

gitbox 2025-06-27

1 ။ GettingooH နေ့ နှင့် အိပ်ပါ

  1. GetwingoMD နေ့ သည် C ဘာသာစကားစံစာကြည့်တိုက် function ဖြစ်ပြီးများသောအားဖြင့်လက်ရှိစနစ်အချိန်ကိုရရန်အသုံးပြုသည်။ ၎င်း၏ကြေညာချက်မှာအောက်ပါအတိုင်းဖြစ်သည် -

     <span><span><span class="hljs-type">int</span></span><span> </span><span><span class="hljs-title function_">gettimeofday</span></span><span><span class="hljs-params">(<span class="hljs-keyword">struct</span></span></span><span> timeval *tv, </span><span><span class="hljs-keyword">struct</span></span><span> timezone *tz);
    </span></span>
    • တီဗီ သည်စက္ကန့်ပိုင်းနှင့် microseconds ပါ 0 င်သည့်တိကျသော ဖွဲ့စည်းပုံဖြစ်သည်။

    • TZ ဆိုသည်မှာအချိန်ကာလဇုန်အချက်အလက်ဖြစ်သည့်အချိန်ဇယားသည်ကျွန်ုပ်တို့၏အာရုံတွင်အချိန်ဇယားတွင်မဟုတ်သည့် အချိန်ဇယား ကိုဖြတ်သန်းနိုင်သည်။

    GetwingoHoOfDay ၏ပြန်လည်နေရာချထားခြင်းသည်လက်ရှိအခြေအနေ, စက္ကန့်ပိုင်းနှင့် microseconds များဖြစ်သည်။

  2. အိပ်စက်ခြင်း

    Sleeping function ကိုပရိုဂရမ်တစ်ခု၏ကွပ်မျက်မှုကိုခေတ္တရပ်တန့်ရန်အသုံးပြုသည်။ ၎င်းသည်စက္ကန့်ပိုင်းစီသည်စက္ကန့်ပိုင်းဖြစ်သည်။ ၎င်း၏ကြေညာချက်မှာအောက်ပါအတိုင်းဖြစ်သည် -

     <span><span><span class="hljs-type">unsigned</span></span><span> </span><span><span class="hljs-type">int</span></span><span> </span><span><span class="hljs-title function_">sleep</span></span><span><span class="hljs-params">(<span class="hljs-type">unsigned</span></span></span><span> </span><span><span class="hljs-type">int</span></span><span> seconds);
    </span></span>

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


2 ။ Extrameofngayday နှင့် အိပ်စက်ခြင်း နှင့်အတူကွပ်မျက်အချိန်ကိုတိကျစွာထိန်းချုပ်ရန်

Task Execute တွင်လုပ်ဆောင်မှုကိုအကောင်အထည်ဖော်ရန်အတွက်တိကျစွာထိန်းချုပ်ရန်လိုအပ်သည်ဆိုပါစို့။ ကျွန်ုပ်တို့သည်လက်ရှိအချိန်တွင် 0 င်ရောက်ရန်နှင့် အိပ်စက်ခြင်း လုပ်ဆောင်မှုတစ်ခုစီကိုလုပ်ဆောင်ရန်နှင့်ကွပ်မျက်မှုတစ်ခုစီ၏ 0 င်ရောက်စွက်ဖက်မှုကိုပေါင်းစပ်ရန် GetwareoHoHOhday ကို သုံးနိုင်သည်။

  1. လက်ရှိအချိန်ကိုရယူပါ

    လက်ရှိစနစ်အချိန်ရရန် GetwingoHohday ကို ဦး စွာခေါ်ဆိုသည်။ ဒီအလုပ်ကိုကွပ်မျက်ခံရချိန်မှာဒီအချိန်ကိုပြောပြလိမ့်မယ်။

  2. ပစ်မှတ်အချိန်တွက်ချက်

    Milliseconds 100 တိုင်းတိုင်းကွပ်မျက်ခံရရန်ကျွန်ုပ်တို့လိုအပ်သည်ဆိုပါစို့။ စတင်ချိန်ကိုရရှိပြီးနောက်သင်လာမည့်လုပ်ငန်းခွင်အကောင်အထည်ဖော်ရန်အချိန်ကိုတွက်ချက်နိုင်သည်။ ပစ်မှတ်အချိန်သည်လက်ရှိအချိန်နှင့်ညီမျှသည်။

  3. ပစ်မှတ်အချိန်ရောက်သည်အထိစောင့်ပါ

    ပစ်မှတ်အချိန်ကိုတွက်ချက်ပြီးနောက်လက်ရှိအချိန်နှင့်ပစ်မှတ်အချိန်အကြားခြားနားချက်ကိုကျွန်ုပ်တို့ကတိကျမှန်ကန်စွာစောင့်ဆိုင်းရန် အိပ်စက်ခြင်း သို့မဟုတ် ကျွန်ုပ်တို့ကို အသုံးပြုပါ။ ၎င်းသည်တာ 0 န်ရှည်ကိုအကောင်အထည်ဖော်ရန်နှင့်တိုတောင်းလွန်းခြင်းမှကာကွယ်ခြင်းမှတားဆီးနိုင်သည်။

  4. အလုပ်များ၏တိကျမှန်ကန်မှုကိုထိန်းချုပ်ပါ

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

Task Exitution Time ကိုထိန်းချုပ်ရန် အိပ်စက်ခြင်း နှင့် အိပ်စက်ခြင်းကို အသုံးပြုသောနမူနာကုဒ်ဖြစ်သည်။

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// တစ်ခုချင်းစီကိုအလုပ်တာဝန်ကြမ်းခံများအတွက်ကြားကာလအချိန်သတ်မှတ်ပါ(တခု:စက္ကန့်နှင့် microseconds)</span></span><span>
</span><span><span class="hljs-variable">$interval_sec</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>;      </span><span><span class="hljs-comment">// စက်ဏန့်</span></span><span>
</span><span><span class="hljs-variable">$interval_usec</span></span><span> = </span><span><span class="hljs-number">100000</span></span><span>; </span><span><span class="hljs-comment">// 微စက်ဏန့်,100毫စက်ဏန့်</span></span><span>

</span><span><span class="hljs-comment">// လက်ရှိအချိန်ကိုရယူပါ</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">getCurrentTime</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
    </span><span><span class="hljs-variable">$time</span></span><span> = </span><span><span class="hljs-title function_ invoke__">gettimeofday</span></span><span>();
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$time</span></span><span>[</span><span><span class="hljs-string">'sec'</span></span><span>] * </span><span><span class="hljs-number">1000000</span></span><span> + </span><span><span class="hljs-variable">$time</span></span><span>[</span><span><span class="hljs-string">'usec'</span></span><span>]; </span><span><span class="hljs-comment">// 返回当前时间的微စက်ဏန့်数</span></span><span>
}

</span><span><span class="hljs-comment">// task execute အတွက်ပစ်မှတ်အချိန်တွက်ချက်</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">getTargetTime</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$interval_sec</span></span></span><span>, </span><span><span class="hljs-variable">$interval_usec</span></span><span>) {
    </span><span><span class="hljs-variable">$current_time</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getCurrentTime</span></span><span>();
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$current_time</span></span><span> + </span><span><span class="hljs-variable">$interval_sec</span></span><span> * </span><span><span class="hljs-number">1000000</span></span><span> + </span><span><span class="hljs-variable">$interval_usec</span></span><span>;
}

</span><span><span class="hljs-comment">// အချိန်ကိုက်တာကို Simulate</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">performTask</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
    </span><span><span class="hljs-comment">// Task Execute ကိုတုပ(ဥပမာအားဖြင့်:အချက်အလက်များကိုထုတ်ယူခြင်း、မေးမြန်းAPIစောင့်)</span></span><span>
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Task performed at: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">"Y-m-d H:i:s"</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
}

</span><span><span class="hljs-comment">// အဓိကအစီအစဉ်</span></span><span>
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-literal">true</span></span><span>) {
    </span><span><span class="hljs-comment">// လက်ရှိအချိန်ကိုရယူပါ</span></span><span>
    </span><span><span class="hljs-variable">$current_time</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getCurrentTime</span></span><span>();

    </span><span><span class="hljs-comment">// ပစ်မှတ်အချိန်တွက်ချက်</span></span><span>
    </span><span><span class="hljs-variable">$target_time</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getTargetTime</span></span><span>(</span><span><span class="hljs-variable">$interval_sec</span></span><span>, </span><span><span class="hljs-variable">$interval_usec</span></span><span>);

    </span><span><span class="hljs-comment">// တာဝန်များကိုလုပ်ဆောင်</span></span><span>
    </span><span><span class="hljs-title function_ invoke__">performTask</span></span><span>();

    </span><span><span class="hljs-comment">// 计算စောင့်待时间</span></span><span>
    </span><span><span class="hljs-variable">$sleep_time</span></span><span> = </span><span><span class="hljs-variable">$target_time</span></span><span> - </span><span><span class="hljs-title function_ invoke__">getCurrentTime</span></span><span>();

    </span><span><span class="hljs-comment">// အလုပ်လျှောက်ထားအချိန်တိုတောင်းလျှင်,လွန်နိုင်ပါတယ် usleep 来精确စောင့်待</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$sleep_time</span></span><span> &gt; </span><span><span class="hljs-number">0</span></span><span>) {
        </span><span><span class="hljs-title function_ invoke__">usleep</span></span><span>(</span><span><span class="hljs-variable">$sleep_time</span></span><span>);  </span><span><span class="hljs-comment">// စောင့်待直到目标时间到达</span></span><span>
    }
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

ဤဥပမာတွင်ထိုလုပ်ငန်းသည် Milliseconds 100 တိုင်းတွင်ကွပ်မျက်ခံရသည်။ လက်ရှိအချိန်တွင်အချိန်ကို getterofday function မှတဆင့်ရယူပါ, ပစ်မှတ်အချိန်ကိုတွက်ချက်ပါ, ပြီးနောက် USEEP function ကိုတိကျစွာစောင့်ဆိုင်းပါ။ ၎င်းသည်အလုပ်များကိုတိကျစွာထိန်းချုပ်နိုင်ပြီးစနစ်အချိန်ဇယားသို့မဟုတ်အခြားအချက်များကြောင့်ဖြစ်ပေါ်သောအချိန်သွေဖီမှုကိုရှောင်ရှားလိမ့်မည်။