PHP套接字脚本在3小时后超时



我正在运行一个PHP脚本,用于侦听套接字上发送的数据包。这个版本相当粗糙,通过使用以下代码在一个连续的循环中运行:

set_time_limit(0);
while(TRUE) 
{
   //read port and do something
}

这很好,但我注意到我们必须每三个小时自动重新启动一次脚本。

set_time_limit(0)应该允许脚本无限期运行——是否有一个总体的PHP设置意味着脚本将在3小时后自动终止?

据我所知,PHP中没有这样的设置。问题可能是暂时失去了连接。

关于3小时。。。可能是您的进程造成了一个小的内存泄漏,迫使服务器大约每3小时终止一次进程吗?我以前也遇到过这种事。

关于@Salman的注释,不同之处在于命令行默认情况下没有启用各种指令,最重要的是-set_time_limit(0)。也就是说,默认情况下,命令行脚本可以无限地运行。

还有其他细节需要处理吗?

根据这篇9年前的帖子:https://bugs.php.net/bug.php?id=29560套接字中有一个错误,导致它泄漏内存。改为使用stream_socket_server。

$start_time_increment =  strtotime("7.00am");
$end_time_increment =  strtotime("10.00pm");
for ($date = $start_time_increment; $date <=$end_time_increment; $date = strtotime("+3 hours",$date)) **{**
    echo date(" h:i:a",$date)."<br />";
}

相关内容

  • 没有找到相关文章

最新更新