PHP中的Sleep命令返回非零值

时间:2011-03-08 10:44:21

标签: php drupal-6

我有一个脚本,它在Drupal中作为我的模块的一部分运行。 在这个模块中,我使用cURL函数从远程网站请求html页面,然后我解析html内容并将其写入我的数据库。 我希望在对远程服务器执行的每个请求之间有一个延迟,因此我在PHP脚本中添加了sleep()

function get_me_data()
{
  for( 15 iterations)
  {
    $html  =  file_get_contents($search_url);
    //parse html contents
    $delay  = mt_rand($interval1,$interval2); // interval1 = 0 , interval2=30
    $retval = sleep($delay);
  }
}
  1. function get_me_data()由cron job启动(在.module文件中实现hook_cron)。
  2. 我还尝试在使用sleep命令之前刷新流。 使用flush(); ob_flush();fflush(filepointer); ob_implicit_flush(true)
  3. 在4-5次迭代后,sleep()命令返回NON ZERO值。 当调用sleep()

    时,脚本将在下一次迭代中中止

    如果我在这里忽略了sleep()的任何方面,请告诉我。 我正在使用,PHP版本5.3& Drupal 6

1 个答案:

答案 0 :(得分:2)

根据文档http://php.net/manual/en/function.sleep.php可以返回非零值。

  

如果呼叫被信号中断,sleep()将返回非零值。在Windows上,此值始终为192(Windows API中WAIT_IO_COMPLETION常量的值)。在其他平台上,返回值将是剩余的休眠秒数。

睡眠中的评论使用time_sleep_until(),因为它不会被打断。