对于仪表板应用程序,我正在检查某些网站是否在线以及它们的响应时间。我在PHP中使用函数fsockopen()
来完成此操作,并且通过使用microtime()
函数来获得响应时间。
对于我正在检查的几个网站,我得到的时间不到1毫秒,因为它们与我的应用程序运行在同一服务器上。经过一番艰苦的调试之后,我发现当我检查它们是否在线时,几乎有四分之一的时间,我得到的响应时间约为1000毫秒。但是奇怪的是,该站点不到1毫秒,或者几乎恰好是1000毫秒。
这是我检查网站状态的方法
$start = microtime(true);
$fp = fsockopen($host->getIp(), $host->getPort(), $errCode, $errStr, 10);
$end = microtime(true);
fclose($fp);
我这样计算毫秒数
$ms = ($end - $start) * 1000
我非常怀疑以下事实:它始终是相同的网站,并且几乎总是一秒钟。我想知道这是怎么可能的,如果不是我的错,也许我该如何解决它。我的一种理论是,当有几个请求时,某处的网站服务器会睡眠一秒钟。
我希望有人能帮助我找到解决此问题的方法。