လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Simulated အသုံးပြုသူအပြုအမူအတွက် time_nanosleep စမ်းသပ်မှု

Simulated အသုံးပြုသူအပြုအမူအတွက် time_nanosleep စမ်းသပ်မှု

gitbox 2025-05-26

0 က်ဘ်ဆိုက်စွမ်းဆောင်ရည်စစ်ဆေးခြင်းသို့မဟုတ်အသုံးပြုသူအပြုအမူဆိုင်ရာခြင်း simulation များကိုလုပ်ဆောင်သောအခါတောင်းဆိုမှုများအကြားအချိန်ကြားကာလကိုစနစ်တကျထိန်းချုပ်ထားသည့်အခါစမ်းသပ်မှုသည်အစစ်အမှန်ဇာတ်လမ်းနှင့်နီးကပ်ရန်သေချာစေရန်သော့ချက်ဖြစ်သည်။ Web Development တွင်အသုံးပြုသောဘာသာစကားတစ်ခုအနေဖြင့် PHP သည်အထူးတိကျသော အချိန်ကာလ အတွက်အထူးဒီဇိုင်းပြုလုပ်ထားသောကိရိယာတစ်ခုမဟုတ်ပါ။ ဤဆောင်းပါးသည်ဤလုပ်ငန်းကိုမည်သို့အသုံးပြုရမည်ကိုလေ့လာလိမ့်မည်။

1 ။ Time_nanosleep () function ကိုမိတ်ဆက်

Time_Nanosleep () PHP မှ PUP-PUTRIE ကွပ်မျက်မှုရပ်ဆိုင်းထားသည်။ developer များက "စက္ကူ + nanoseconds" (စက္ကန့်ပိုင်းအတွင်း) သို့မဟုတ် USEEP (MicroSeconds) (MicroSeconds) နှင့်နှိုင်းယှဉ်လျှင် "စက္ကူ + nanoseconds" တွင်ခေတ္တပြောင်းလွယ်ပြင်လွယ်များကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်ရှိစေရန်ခွင့်ပြုသည်။

function ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -

 bool time_nanosleep(int $seconds, int $nanoseconds)

parameter သည်ဖော်ပြချက်:

  • $ စက္ကန့် - ခေတ္တရပ်ရန်စက္ကန့်အရေအတွက်။

  • $ nanoseconds : ခေတ္တရပ်တန့်ရန် Nanoseconds အရေအတွက် (0 မှ 9999999999) ။

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

2 ။ အသုံးပြုမှုမြင်ကွင်း - အသုံးပြုသူ Access အပြုအမူကိုတုပပါ

0 က်ဘ်စာမျက်နှာများကိုကြည့်ရှုခြင်းကဲ့သို့သောအသုံးပြုသူများ၏အပြုအမူများကိုတွန်းအားပေးသည့်အခါ link များသို့မဟုတ် scrolling လုပ်ခြင်းကိုနှိပ်ခြင်း, အသုံးပြုသူစစ်ဆင်ရေးများသည်မီလီစက္ကန့်အနည်းငယ်မျှသာသို့မဟုတ်မီလီစက္ကန့်အနည်းငယ်မျှသာဖြစ်နိုင်သည်။ time_nanosleep () , ဤအချိန်ကိုကြားကာလပိုမိုဂရုတစိုက်ထိန်းချုပ်နိုင်သည်။

ဥပမာ - အသုံးပြုသူများကိုစာမျက်နှာစာမျက်နှာမှဝက်ဘ်ဆိုက်စာမျက်နှာသို့ဝင်ရောက်ရန်တုပပါ

0 က်ဘ်ဆိုက် 150 ကိုမီလီစက္ကန့်တိုင်းတွင် 0 က်ဘ်ဆိုက် 150 တိုင်းတွင် 0 က်ဘ်ဆိုက်ကိုလာရောက်လည်ပတ်သောအသုံးပြုသူတစ် ဦး ၏အခြားစာမျက်နှာတစ်ခုကိုတုပရန်လိုသည်ဆိုပါစို့။ အောက်ပါကုဒ်ကိုသုံးနိုင်သည်။

 $pages = [
    'https://gitbox.net/page1',
    'https://gitbox.net/page2',
    'https://gitbox.net/page3',
];

foreach ($pages as $page) {
    $ch = curl_init($page);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);

    echo "စာမျက်နှာသို့သွားရောက်ပါ: $page\n";

    // ခေတ္တရပ်ဆိုင်းခြင်း 0.15 စက်ဏန့်(အခုချက်ချင်း 150 毫စက်ဏန့်)
    time_nanosleep(0, 150 * 1000000);
}

ဤနေရာတွင် Curl သည် တောင်းဆိုမှုစာမျက်နှာ၏အကြောင်းအရာများကိုထည့်သွင်းပြီးတောင်းဆိုမှုတစ်ခုစီ၏တောင်းဆိုမှုတစ်ခုစီပြီးနောက် 150 မီလီစက္ကန့်များကိုပြုလုပ်ပြီးလုပ်ငန်းစဉ်တစ်ခုလုံးကိုလူ့သဘာဝကလစ်နှိပ်ခြင်းအပြုအမူနှင့်ကိုက်ညီသည်။

3 ။ မမှန် 0 င်ရောက်မှုစည်းချက်ကိုရယူပါ

လက်လှမ်းမီမှုအကြိမ်ရေသည်မကြာခဏမမှန်တတ်သည်။ ကွဲပြားခြားနားသောစိတ်ကူးများကိုအကောင်အထည်ဖော်ရန် Rand () function ကိုပေါင်းစပ်ပြီး Time_Nanosleep () ကိုသုံးနိုင်သည်။

 $urls = [
    'https://gitbox.net/article/101',
    'https://gitbox.net/article/102',
    'https://gitbox.net/article/103',
];

foreach ($urls as $url) {
    echo "simulated access ကို: $url\n";
    
    // တောင်းဆိုမှုကိုပို့ပါ
    file_get_contents($url);

    // 随机ခေတ္တရပ်ဆိုင်းခြင်း 100 ရောက်လာ 500 毫စက်ဏန့်之间
    $milliseconds = rand(100, 500);
    time_nanosleep(0, $milliseconds * 1000000);
}

ဤနည်းအားဖြင့် Simulation program သည်ထိန်းချုပ်မှုကြားကာလများကိုသာပေးနိုင်ရုံသာမကလက်လှမ်းမီမှုလျော့နည်းလာခြင်းနှင့်သုံးစွဲသူကိုကြည့်ရှုခြင်းနှင့်ပိုမိုနီးကပ်စွာဖြစ်လိမ့်မည်။

4 ။ မှတ်စုများ

  • သဟဇာတ - Time_Nanosleep () PHP 5 ကတည်းကမိတ်ဆက်ခဲ့သည်။ PHP ၏အဟောင်းဗားရှင်းများတွင်အသုံးပြုပါကအမှားတစ်ခုဖြစ်နိုင်သည်။

  • စွမ်းဆောင်ရည်အကျိုးသက်ရောက်မှု - ဤလုပ်ဆောင်မှုသည် nonosecond control ကိုအောင်မြင်နိုင်သော်လည်း PHP ကိုယ်တိုင်သည် System clock ၏တိကျမှန်ကန်မှုကိုကန့်သတ်ထားသည်။

  • signal interrupt processing : time_nanosleep () signal ကိုအနှောင့်အယှက်ပေးလျှင်,

5 ။ အကျဉ်းချုပ်

စွမ်းဆောင်ရည်နှင့်အလိုအလျောက်စစ်ဆေးခြင်းများတွင်တောင်းဆိုမှုများအကြားအချိန်နှောင့်နှေးမှုများကိုတိကျသောထိန်းချုပ်မှုသည်အစစ်အမှန်အသုံးပြုသူအပြုအမူကိုတုပရန်မရှိမဖြစ်လိုအပ်သည်။ PHP ၏ Time_Nanosleep () သည် developer များကိုမီလီမီတာမီလီမီတာနှင့်ပိုမိုကောင်းမွန်သောအချိန်ထိန်းချုပ်မှုများပြုလုပ်နိုင်ရန်ကူညီရန်အတိုချုပ်နှင့်ထိရောက်သောနည်းလမ်းတစ်ခုကိုပေးသည်။ curl , file_get_contontents () နှင့်ကျပန်းကြားကာလဆိုင်ရာယုတ္တိဗေဒကိုပေါင်းစပ်ပြီး 0 က်ဘ်ဆိုက်တည်ငြိမ်မှုနှင့်တုန့်ပြန်မှုစွမ်းဆောင်ရည်အတွက်အားကောင်းသောအာမခံချက်ပေးရန်ပိုမိုလက်တွေ့ကျပြီးထိရောက်သောအသုံးပြုသူအပြုအမူစနစ်ကိုတည်ဆောက်နိုင်သည်။