睡眠()超时

时间:2013-03-10 21:25:08

标签: php

我的主机设置在超时方面存在问题,但实际上我不知道哪一个确切地对此负责。当我在php页面中运行此代码时:

<?PHP sleep(30); echo "Done"; ?>

它给了我"tcp error operation timeout"

但当我将其更改为sleep(20)时,它会成功运行。所以请帮我找出我的php ini文件中哪个项目负责此超时。然而,我试图谷歌它已经尝试了很多建议,但没有运气,最后我被困在这一点让我的PHP脚本上线。

4 个答案:

答案 0 :(得分:2)

基于错误消息,我怀疑这不是PHP超时,而是实际的Web服务器“拉动插件”(虽然30秒是一个非常短的时间限制)。

这肯定不是正常的PHP错误消息,您不应该使用sleep来引发PHP超时,因为它不会占用实际的CPU时间。

不知道你正在运行什么样的主机(Apache?Nginx?IIS?共享主机?VPS?等),很难知道在哪里,即使你可以改变它。

答案 1 :(得分:0)

查看配置中的时间限制。

您可以使用以下代码行修改脚本的时间限制:

set_time_limit(60);

默认值为30s。如果您在内部使用不带参数的set_time_limit(),则只会重置计数器,并且可用的总时间将增加30秒。

查看文档set_time_limit documentation

答案 2 :(得分:0)

30秒是默认的php超时,如果你需要sleep(30)你必须增加超时,有两种方法可以改变它,来自php脚本。

set_time_limit ( int $seconds );

OR

ini_set('max_execution_time', int $seconds);

答案 3 :(得分:0)

我想与每个正在寻找类似问题的人分享这个答案。在花了几个小时搜索根本原因之后,我终于发现了Network Error (tcp_error) A communication error occurred: "Operation timed out"错误 disappeared when i ran my script on another machine 的任何代码,因此 the issue was with either my machine or my internet speed < / strong>我真的不知道。无论如何,错误可能只在代码中找不到。