function checkServer($ domain、$ port = 80){グローバル$ 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;
}
テストサーバーはgoogle.skで、checkTimeoutは10秒です。これは実際には機能しますが、ループで約50回実行し、他の処理(mysqlクエリなど)を実行しようとすると、遅くはありませんが、スクリプトが終了するまでCPUの負荷が100%発生します。それは私のCPUを狂わせる単一のapacheプロセスです...それで私はあなたがそれについて何か考えがあるかどうかあなたに尋ねたいと思いました。おそらく、Pythonやbashなどで同じことを行うためのヒントをいただければ幸いです。
回答ありがとうございます:)