0

我正在尝试编写一个长轮询服务器脚本。我现在遇到问题了。由于某种原因,执行轮询的 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

我尝试使用$timeoutand $waitvars 最终强制打破 while 循环。但是,如果我这样做tail -f error.log(写入日志消息的位置)看起来这个 php 文件总是在执行中!我想知道如何在确定之后停止执行 php 文件。

*编辑:如果一个新的“事件”到来,它会成功停止。

4

0 回答 0