我正在尝试编写一个长轮询服务器脚本。我现在遇到问题了。由于某种原因,执行轮询的 php 文件永远不会停止。绝不。
$timeout = 9000000; //9 sec
$wait = 3000000; //3 sec
$now = time();
$lastAccess = $db->getLastAccess();
while( $lastAccess <= $now && 0 < $timeout) {
usleep($wait); //wait 3 secs
//decrease limit
$timeout = $timeout - $wait;
writeLog("\n\n Checking last access...\n\n");
$lastAccess = $db->getLastAccess();
if (0 >= $timeout)
writeLog("\n\n timeout on server...\n\n");
}
//return whatever
我尝试使用$timeout
and $wait
vars 最终强制打破 while 循环。但是,如果我这样做tail -f error.log
(写入日志消息的位置)看起来这个 php 文件总是在执行中!我想知道如何在确定之后停止执行 php 文件。
*编辑:如果一个新的“事件”到来,它会成功停止。