我有一些foreach循环,并且每次使用
set_time_limit(30)
将计数器重新启动回零。
现在脚本运行的时间更长(我使用API获取5000-10000篇文章并将它们存储在数据库中),但过了一段时间(当它处理了大量数据时)我得到“最长执行时间为30秒超过”。
可能是因为记忆力不足吗?我怎么能解决这个问题?
脚本使用API获取文章,并且foreach循环基本上像这样使用
foreach($articles as $article)
{
//do stuff with single article using $article
set_time_limit(30);
}
并且我不认为获取和处理单篇文章需要超过30秒,但显然在脚本运行一段时间后,它会达到该限制。我究竟做错了什么?我不想让脚本通过使用set_time_limit(9000)或类似的东西来执行超过30秒的5秒作业,这可能会完成工作,但我想这不是一个好方法解决问题?
答案 0 :(得分:3)
为什么不做你的
set_time_limit(0);
您脚本的第一行?
答案 1 :(得分:1)
如果出于某些疯狂的原因,您认为必须施加时间限制,请考虑以下事项:
set_time_limit(0);
$n = 0; $inc = 1;
foreach($article as $v){
// do stuff with $v - Less characters is faster
$n+=$inc;
}
set_time_limit($n);
更改$inc
以满足您的需求。
答案 2 :(得分:0)
试试这个:
PHP has a function set_time_limit which sets the time limit of execution.
It has one argument set in seconds.
If you use like this,
set_time_limit(0)
then it will set unlimited time of execution.
Write this code in top.
您可以在此处参考更多内容:http://php.net/manual/en/function.set-time-limit.php