【问题标题】:PHP Sleep function With While LoopPHP Sleep 函数与 While 循环
【发布时间】:2014-12-11 05:38:37
【问题描述】:

我正在使用 Ubuntu Server 14.04 我的脚本中有一些问题 ...如果我在 else 条件下使用 die 而不是在 echo 后 sleep 但是当我在 else 条件下 echo 后使用 sleep(3600) 时,脚本会给我很好的响应它没有给我任何回应......这是我的代码

date_default_timezone_set("Europe/London");

$st_time = '12:00';

$et_time = '18:00';

$cur_time = date("H:i");

while (1) {

    if (($cur_time < $et_time) && ($cur_time > $st_time)) {
        //Enter and perform Some function
    } else {
        echo 'sleep for one hour Bye';      
        sleep(3600)
    }
}

【问题讨论】:

  • 期望会发生什么? sleep(3600) 表示等待 60 分钟;这意味着您需要一个小时才能收到回复。然而,PHP 经常被配置为中止需要超过很短时间(30 秒左右)的脚本,所以当这种情况发生时你可能会得到一个错误。
  • 你可以查看这篇文章,也许对stackoverflow.com/questions/740954/…stackoverflow.com/questions/8518203/…有帮助

标签: php sleep


【解决方案1】:

试试这个代码,在微秒内休眠代码:

date_default_timezone_set("Europe/London");
$st_time = '12:00';
$et_time = '18:00';
$cur_time = date("H:i");
while (true) {
if (($cur_time < $et_time) && ($cur_time > $st_time)) {
//Enter and perform Some function
} else {
usleep(3600);
echo 'sleep for one hour Bye';        
 }
}

【讨论】:

  • usleep 这里是 3600,意思是 0.0036 秒。这个脚本会增加很多 CPU 负载。您需要改用 sleep() 。或使用 usleep(3600000000)
猜你喜欢
  • 2020-03-17
  • 2016-01-21
  • 1970-01-01
  • 1970-01-01
  • 2012-11-11
  • 2017-09-17
  • 2021-12-03
  • 2021-01-14
  • 1970-01-01
相关资源
最近更新 更多