အချိန်ကုန်သောတွားတတ်သောတိရစ္ဆာန်များကိုတည်ဆောက်ရာတွင်တောင်းဆိုမှုများအကြိမ်ရေကိုထိန်းချုပ်ခြင်းသည်အရေးပါသောအလုပ်ဖြစ်သည်။ အလွန်အကျွံတောင်းဆိုမှုအကြိမ်ရေသည်ပစ်မှတ်ထားသော server ကို IP ကိုပိတ်ဆို့ရန်ဖြစ်နိုင်ချေရှိသောကြောင့်အလွန်အကျွံအနိမ့်ဆုံးနိမ့်ကျခြင်းသည်အချက်အလက်များသည်ရုန်းရင်းဆန်ဆန်ထိရောက်မှုကိုအကျိုးသက်ရောက်နိုင်သည်။ PHP တွင် Time_Nanosleep သည် Crawler Interval Time ကိုပိုမိုတိကျစွာထိန်းချုပ်ရန်အထူးသဖြင့်မီလီဗွီမက္ကူစက္ကန့်အဆင့်တွင်မြင့်မားသောအိပ်စက်ခြင်းထိန်းချုပ်မှုကိုပိုမိုတိကျစွာထိန်းချုပ်ရန်ကူညီသည်။
PHP သည် အိပ်စက်ခြင်း () နှင့် USEEP ကဲ့သို့သောနှောင့်နှေးလုပ်ဆောင်မှုများကိုထောက်ပံ့ပေးသည်။ အိပ်စက်ခြင်း () သည် စက္ကန့်ပိုင်းအတွင်းနှောင့်နှေးခြင်း, တိကျမှန်ကန်မှုနိမ့်ကျပြီးတိကျမှန်ကန်မှုမရှိသောအခြေအနေများအတွက်သင့်တော်သည်။ USLEEP () သည် (တစ်စက္ကန့်၏တစ်သန်း၏တစ်သန်း၏တစ်သန်းခန့်) ကိုထောက်ပံ့သည်။ Time_Nanosleep သည် ပိုမိုခိုင်မာသောတိကျမှန်ကန်မှုနှင့်ပြောင်းလွယ်ပြင်လွယ်ရှိသော nanosecond ထိန်းချုပ်မှုကိုထောက်ခံသည်။
bool time_nanosleep ( int $seconds , int $nanoseconds )
ဒီ function က parameters တွေကိုနှစ်ခုကိုကြာသည်။ developer များက developer များကိုတစ်စက္ကန့်တစ်စက္ကန့်တစ်စက္ကန့်တစ်စက္ကန့်တစ်စက္ကန့်တစ်စက္ကန့်တစ်စက္ကန့်တစ်စက္ကန့်အထိတိတိကျကျရောက်ရှိရန်ခွင့်ပြုသည်။
ကျွန်ုပ်တို့သည် https://gitbox.net/data-feed မှ အချက်အလက်များကိုပုံမှန်တွားသွားချင်ကြပါစို့။ ဆာဗာကိုဖိအားမပေးရန်တောင်းဆိုမှုတစ်ခုစီသည်တစ်မီလီစက္ကန့် (300 မီလီမီတာ) အထိတောင်းဆိုမှုတစ်ခုစီ၏ကြားကာလကိုသတ်မှတ်သည်။ ငါတို့လုပ်နိုင်တယ် -
<?php
$targetUrl = "https://gitbox.net/data-feed";
$maxRequests = 10;
for ($i = 0; $i < $maxRequests; $i++) {
$response = file_get_contents($targetUrl);
if ($response === false) {
echo "1 ။ {$i} တောင်းဆိုမှုမအောင်မြင်ပါ\n";
} else {
echo "1 ။ {$i} တောင်းဆိုမှုအောင်မြင်ခဲ့တယ်,အကြောင်းအရာအရှည်:" . strlen($response) . "\n";
}
// တောင်းဆိုမှုတစ်ခုစီပြီးနောက်အိပ်ပါ 300 မီလီစက္ကန့်(0.3 စက်ဏန့်)
$seconds = 0;
$nanoseconds = 300 * 1000000; // 300 မီလီစက္ကန့် = 300,000,000 纳စက်ဏန့်
time_nanosleep($seconds, $nanoseconds);
}
ဤ script တွင်ကျွန်ုပ်တို့သည် file_getbole.net/data -feed မှအချက်အလက်များကိုရယူရန်အတွက် အချက်အလက်များကို https://gitbox.net/data -feed မှအချက်အလက်များကိုရယူရန်အတွက်အချက်အလက်များကို အသုံးပြု. Time_Nanosleep (0.000000,
TIME_NANOSESEP သည်အောင်မြင်မှုကိုညွှန်ပြရန် မှန်ကန် သည်။ နှောင့်နှေးမှုနှောင့်နှေးနေလျှင်ကျန်ရှိနေသေးသော စက္ကန့်ပိုင်း နှင့် nanoseconds အပါအ 0 င်ခင်းကျင်းမှုကိုပြန်လည်ရောက်ရှိစေသည်။ လိုအပ်ပါကယုတ္တိဗေဒကိုင်တွယ်ခြင်းကိုကိုင်တွယ်ဖြေရှင်းခြင်းသို့မဟုတ်ပြန်လည်ကြိုးစားခြင်းကိုကျွန်ုပ်တို့လုပ်နိုင်သည်။
$result = time_nanosleep(0, 300000000);
if (is_array($result)) {
echo "နှောင့်နှေးကြားဖြတ်,ကျန်ရှိသောအချိန်:{$result['seconds']} စက်ဏန့်,{$result['nanoseconds']} 纳စက်ဏန့်\n";
}
ပိတ်ဆို့ခြင်းကိုရှောင်ကြဉ်ပါ - အကြိမ်ရေကိုထိန်းချုပ်ရန် Time_Nanosleep ကို သုံး. Profact server မှတွားတတ်သော တိရစ္ဆာန် တစ်ကောင်အဖြစ်ဖော်ထုတ်ရန်အန္တရာယ်ကိုလျှော့ချရန်ကူညီသည်။
Dynamic Interval Interval Control : time_nanosleep parameters တွေကို 0 က်ဘ်ဆိုက်တုန့်ပြန်မှုအချိန် (သို့) ဆာဗာဝန်တွေကိုမြှင့်တင်နိုင်တယ်။
File_Get_contents အစားဆံပင်ကောက်ကောက်ကိုသုံးပါ ။ အမှန်တကယ်စီမံကိန်းများတွင် curl သည် ပိုမိုအားကောင်းတဲ့အမှားကိုင်တွယ်ခြင်း,
PHP Brawlers တွင် အချိန်ကြာ မြင့်စွာအသုံးပြုခြင်းသည်တွားတတ်သောလုပ်ငန်းစဉ်၏တည်ငြိမ်မှုနှင့်တိကျမှန်ကန်မှုကိုသိသိသာသာတိုးတက်စေနိုင်သည်။ အထူးသဖြင့်မီလီဗစ်အဆင့်ထိန်းချုပ်မှုတောင်းဆိုမှုအကြိမ်ရေလိုအပ်သည့်အခြေအနေများတွင်၎င်းသည်သင်၏စီစဉ်ရေးမဟာဗျူဟာတွင်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်လာနိုင်သည်။ ကောင်းသောအမှားကိုင်တွယ်သည့်ယန္တရားနှင့်လက်လှမ်းမီမှုမဟာဗျူဟာကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ထိရောက်သောတွား 0 တ်သောစနစ်ကိုပိုမိုခိုင်မာစွာတည်ဆောက်နိုင်သည်။