PHP တွင် Time_nanosleep သည်မြင့်မားသောနှောင့်နှေးမှုအတွက် function တစ်ခုဖြစ်ပြီး၎င်း၏ function signature မှာအောက်ပါအတိုင်းဖြစ်သည်။
bool time_nanosleep(int $seconds, int $nanoseconds)
ဤလုပ်ဆောင်မှုသည် Developer များက developer များကလက်ရှိအချိန်တွင်စက္ကန့်များနှင့် nanoseconds များကိုသတ်မှတ်ရန်အတွက်လက်ရှိလုပ်ငန်းစဉ်ကိုခေတ္တရပ်တန့်ရန်ခွင့်ပြုသည် ။ သို့သော်အမှန်တကယ်အမှန်တကယ်အသုံးပြုမှုတွင်ဒုတိယ paroseconds ၏တန်ဖိုးသည် 1 စက္ကန့်ထက်နည်းရမည်ဟုသင်တွေ့လိမ့်မည် (i.E. 1,000,000,000,000,000,000,000,000,000) , ဤကန့်သတ်ချက်၏အမြစ်သည်အခြေခံအားဖြင့်ခေါ်ဆိုမှုများနှင့်အချိန်ကိုကိုယ်စားပြုသည်ကိုအမှန်တကယ်ဖော်ပြသည်။
Time_nanosleep ကို operating system မှပေးသော noosleep () function ကိုခေါ်ဆိုခြင်းဖြင့် PHP တွင်အကောင်အထည်ဖော်သည်။ Nanosleep သည် POX နိဂျာစံချိန်တွင်လုပ်ဆောင်ချက်တစ်ခုဖြစ်ပြီး၎င်း၏ parameters များသည် timespec ဖွဲ့စည်းပုံမှာ -
struct timespec {
time_t tv_sec; // စက်ဏန့်
long tv_nsec; // 纳စက်ဏန့် (0 ~ 999,999,999)
};
သင်မြင်နိုင်သည့်အတိုင်း TV_NSEC FIELD DEARTION သည်တန်ဖိုးသည် 0 မှ 999,9999999 (I.E. 1 စက္ကန့်ထက်နည်းသည်) ဖြစ်သည်။ 1,000,000,000 ထက်ကြီးသောသို့မဟုတ်ညီမျှသောတန်ဖိုးသည်အောင်မြင်မှုရှိပါက operating system သည်ဤတန်ဖိုးကိုတရားမ 0 င်ဟုယူဆရပြီး EINVAL (Parameter သည်မမှန်ကန်ပါ)
PHP ၏ Time_Nanosleep သည် ဤနောက်ခံလုပ်ဆောင်ချက်အပေါ်တိုက်ရိုက်မူတည်သည်နှင့်အတူတူပင်အကန့်အသတ်များကိုလိုက်နာရမည်။
PHP တွင်သင်သည် $ nanoseconds = 100000000 သို့မဟုတ်ထိုထက်ပိုသော PHP ကိုအောင်မြင်ရန်ကြိုးစားပါကသင်နှင့်ဆင်တူသည့်သတိပေးသတင်းစကားကိုသင်ရရှိမည်
Warning: time_nanosleep(): nanosecond value out of range in ...
PHP စကားပြန်သည် system function ကိုမခေါ်မီ parameter များကိုကြိုတင်စစ်ဆေးလိမ့်မည်။ ဤချဉ်းကပ်မှုသည် Code ၏ကြံ့ခိုင်မှုကိုတိုးတက်စေသည်။
1 စက္ကန့်ကျော်မြင့်မားသောနှောင့်နှေးမှုများကိုသင်ရရှိလိုပါက nanoseconds သို့စက္ကန့်ပိုင်းအကြားတွင်ကျိုးကြောင်းဆီလျော်စွာခွဲဝေချထားနိုင်သည်။ ဥပမာအားဖြင့်, အကယ်. သင်သည် 1.5 စက္ကန့်ကြာနှောင့်နှေးလိုပါကဤအရာကိုရေးနိုင်ပါသည်။
time_nanosleep(1, 500000000); // 1 စက်ဏန့် + 0.5 စက်ဏန့်
ဤနည်းလမ်းသည် parameters တွေကို ဒေါ်လာစက္ကန့် နှစ် စက္ကန့်နှစ် စက္ကန့်ပိုင်းတွင်အချိန်ကိုဖြန့်ဝေသည်။
ဥပမာအားဖြင့်, ပြင်ပ 0 န်ဆောင်မှုများနှင့်အတူအချို့သောအပြန်အလှန်ဆက်သွယ်မှုများတွင်ကျွန်ုပ်တို့သည်အောက်ပါနည်းလမ်းများတွင်အကောင်အထည်ဖော်နိုင်သည့်ပြန်လည်ကြိုးစားခြင်းကိုပြန်လည်ထိန်းချုပ်ရန်လိုသည်။
$url = 'https://gitbox.net/api/retry';
for ($i = 0; $i < 5; $i++) {
$success = file_get_contents($url);
if ($success) {
break;
}
// တဖြည်းဖြည်းနှောင့်နှေးအချိန်တိုးမြှင့်
time_nanosleep(0, 250000000 * $i); // တစ်ခုချင်းစီကိုအချိန်တိုးမြှင့် 0.25 စက်ဏန့်
}
ဒုတိယတစ်ခုလုံးကိုပိတ်ဆို့ခြင်းထက်စောင့်ဆိုင်းရသောအချိန်ကိုတဖြည်းဖြည်းတိုးချဲ့ခြင်းအားဖြင့်အသုံးပြုသူအတွေ့အကြုံသည်တိုးတက်လာပြီးမလိုအပ်သောအရင်းအမြစ်များကိုစားသုံးမှုကိုရှောင်ရှားသည်။
Time_nanosleep ၏ဒုတိယ paretere သည် 1 စက္ကန့်အောက်သာရှိရမည်ဖြစ်သောကြောင့်၎င်းသည် TV_NSEC ၏ Timespec ဖွဲ့စည်းပုံနှင့်ဤနယ်ပယ်၏တရားဝင်တန်ဖိုးကိုနိုင်ငံ၏တရားဝင်တန်ဖိုးမှာ 999,9999999999999 ဖြစ်သည်။ ဤဒီဇိုင်းသည်စနစ်ခေါ်ဆိုမှုများ၏ရှေ့နောက်ညီညွတ်မှုနှင့်ထိရောက်မှုအတွက်ဖြစ်သည်။ ဤကန့်သတ်ချက်ကိုနားလည်သဘောပေါက်ခြင်းနှင့်လိုက်နာခြင်းဤကန့်သတ်ချက်သည် PHP အစီအစဉ်များတွင်ပိုမိုလုံခြုံပြီးအလှည့်အပြောင်းဆိုင်ရာအပြုအမူများကိုပိုမိုလုံခြုံစိတ်ချရသောအမူအကျင့်ကိုထိန်းချုပ်ရန်ခွင့်ပြုသည်။