function checkServer($ domain,$ port = 80) { global $ checkTimeout,$ testServer;
$status = 0;
$starttime = microtime(true);
$file = @fsockopen ($domain, $port, $errno, $errstr, $checkTimeout);
$stoptime = microtime(true);
if($file)
{
fclose($file);
$status = ($stoptime - $starttime) * 1000;
$status = floor($status);
}
else
{
$testfile = @fsockopen ($testServer, 80, $errno, $errstr, $checkTimeout);
if($testfile)
{
fclose($testfile);
$status = -1;
}
else
{
$status = -2;
}
}
return $status;
}
testserver是google.sk,checkTimeout是10秒。这实际上有效,但是当我尝试在循环中运行它大约50次,并做其他事情(mysql查询和类似的东西)时,它并不慢,但它会导致我的CPU 100%加载,直到脚本结束。这是一个单独的apache进程,让我的CPU疯狂...所以我想问你是否有任何想法。也许有些提示如何在python或bash中做同样的事情将会受到赞赏。
感谢您的回复:)