我有一个脚本,它作为我在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);
}
}get_me_data()由cron作业(在.module文件中实现的hook_cron)启动。flush(); ob_flush();fflush(filepointer); ob_implicit_flush(true)在4-5次迭代之后,sleep()命令会返回非零值。当调用sleep()时,脚本在下一次迭代中中止。
如果我在这里忽略了sleep()的任何方面,请告诉我。我正在使用PHP版本5.3和Drupal 6
发布于 2011-03-08 10:49:46
根据文档,http://php.net/manual/en/function.sleep.php可以返回非零值。
如果调用被信号中断,zero()将返回一个非零值。在Windows上,此值始终为192 ( Windows中WAIT_IO_COMPLETION常量的值)。在其他平台上,返回值将是剩余的睡眠秒数。
睡眠中的评论使用直到(),因为它不会被打断。
https://stackoverflow.com/questions/5231367
复制相似问题