【发布时间】:2015-07-09 14:33:46
【问题描述】:
我有一个持续超时 45 秒的 php 脚本。我已经完成了我能找到的所有执行时间,目前有以下内容。
在我的 php.ini 中:
max_execution_time = 0
在我的 .htaccess 中:
# set timeout to 10 minutes
<IfModule mod_php5.c>
php_value max_execution_time 600
</IfModule>
并且在超时的脚本中:
ini_set("memory_limit", "-1");
set_time_limit(0);
在脚本中,当我回显 ini_get('max_execution_time') 时,我得到 0,所以看起来一切正常。是否有其他资源限制阻止脚本运行?我研究了 memory_limit、输入时间等,但我认为这里有一些我不知道的东西。
脚本对一个表执行一个while循环,然后根据记录爬取不同的站点。当我将返回限制为 1 或 2 条记录时,它可以正常工作,但它会进入未找到的 404 页面。对我来说,这意味着它超时,但 404 错误是否表明正在发生其他事情?谢谢
【问题讨论】:
-
你确定是PHP执行的时间限制吗?你有错误吗?您是否试图保持数据库连接打开?需要查看您正在运行的代码才能更好地确定。可能是您与餐桌的连接也在下降。
-
404 通常表示“未找到”......好像对于其中一条记录,您的处理需要获取不存在的资源。显示一些代码。
-
如何抓取网站?卷曲?流?还有什么?
-
在大家的帮助下,我已经将其缩小到使用 phantomjs 的范围内。知道它实际上并没有超时是一个很大的帮助。谢谢!
标签: php