0
我有一个脚本,它作为我的模块的一部分在Drupal中运行。 在本模块中,我使用cURL函数从远程网站请求html页面,然后解析html内容并将其写入我的数据库。 我希望在我对远程服务器的每个请求之间有一段延迟,因此我在我的PHP脚本中添加了sleep()
。PHP中的睡眠命令返回非零值
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作业(hook_cron在.module文件中实现)发起。 - 我也尝试刷新使用睡眠命令之前的流。 使用
flush(); ob_flush();fflush(filepointer); ob_implicit_flush(true)
恰巧,后4-5次迭代,sleep()
命令返回非零值。 当sleep()
被称为
时,脚本会在下一次迭代中中止。如果我忽略了此处的任何方面sleep()
,请告诉我。 我使用,PHP版本5.3 &的Drupal 6
感谢您的输入。我也使用了time_sleep_until()。我注意到的一件奇怪的事情是,当我在我的drupal localhost安装上运行这些脚本时,sleep()和time_sleep_until()都失败。 – rachel 2011-03-08 13:12:50
我已经使用time_sleep_until()验证了我的服务器上的php脚本。经过两次迭代后,我在函数调用之前看到一个调试语句,然后没有调试语句。 – rachel 2011-03-08 13:19:21
@rachel你在本地主机/服务器上运行什么操作系统? – Jacob 2011-03-08 23:40:39