walkor / workerman

An asynchronous event driven PHP socket framework. Supports HTTP, Websocket, SSL and other custom protocols.
http://www.workerman.net
MIT License
11.03k stars 2.25k forks source link

Fixed: Graceful stop and Standardized code format #952

Closed twomiao closed 10 months ago

twomiao commented 10 months ago
  1. 平滑停止出现逻辑问题,早期版本逻辑正常,这个版本似乎就不正确了。
    if (static::$gracefulStop) { //  stop -g 就成为强制断开全部进程TCP、UDP连接
    foreach ($this->connections as $connection) { // 正常逻辑应该等待客户端自动断开
        $connection->close();
    }
    }
  2. 既然Workerman 提供了这个API接口,getGracefulStop()就应该使用上。
    /**
    * If stop gracefully.
    *
    * @return bool
    */
    public static function getGracefulStop(): bool
    {
    return static::$gracefulStop;  // 如果使用变量读取,如果有其它逻辑会变得麻烦;如果变量名称改变,就需要多处修改。
    }
  3. 这个修改不应该会引起测试失败,说明先前就有问题或者测试用例有问题?
walkor commented 10 months ago

Thanks