我有一个脚本,它在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 job启动(在.module文件中实现hook_cron)。flush(); ob_flush();fflush(filepointer); ob_implicit_flush(true)
在4-5次迭代后,sleep()
命令返回NON ZERO值。
当调用sleep()
如果我在这里忽略了sleep()
的任何方面,请告诉我。
我正在使用,PHP版本5.3& Drupal 6
答案 0 :(得分:2)
根据文档http://php.net/manual/en/function.sleep.php可以返回非零值。
如果呼叫被信号中断,sleep()将返回非零值。在Windows上,此值始终为192(Windows API中WAIT_IO_COMPLETION常量的值)。在其他平台上,返回值将是剩余的休眠秒数。
睡眠中的评论使用time_sleep_until(),因为它不会被打断。