我们正在使用一个应用程序服务器来提供我们的数据。
有时与应用服务器的连接需要很长时间才能响应,但实际上并没有连接失败(即使连接成功,速度也会在 pingdom 上记录为停机时间)
如何在 php 中计时连接,以便在一定时间后记录响应缓慢的事件(即使连接尚未响应)?
好吧,尽管如此,我必须同意 eis 关于这一点。PHP 可能不是最好的语言,这是我的建议......
第一个文件:
//Write "1" to text file (loading.txt)
//Run secondary php file (loading.php) asyncronously
//I would suggest curl_post_async or exec(url)
//Start Connection
//Upon load finish write "0" to text file (loading.txt)
这是关于请求页面而不等待加载的一个很好的讨论: php request url without waiting for response
第二个文件(loading.php):
$start=mktime();
while (true) {
if ("loading.txt" if value = 0) {
break;
else if (($start-mktime()) > MAX WAIT TIME) {
//Log as "slow-to-respond"
break;
}
}
您可能需要修改 php.ini 并相应地设置最大执行时间。
我再次觉得这有点草率。我真的建议使用其他语言。
基本上,在您开始连接之前,您运行另一个 php 文件,该文件将继续循环,直到 1. 它从 loading.txt 文件中读取您已完成连接或 2. 您已准备好将其记录为“反应迟钝”的例子。在这种情况下,第二个 php 文件结束并且您已经达到了您想要的结果。