GatewayClient icon indicating copy to clipboard operation
GatewayClient copied to clipboard

使用client循环到注册中心去取数据有时候会报错

Open jun3372 opened this issue 3 years ago • 2 comments

执行代码

Gateway::$registerAddress = "{$host}:{$port}";
echo "register=", Gateway::$registerAddress, PHP_EOL;

while(true) {
    var_dump([
        'Gateway::getAllUidCount()' => Gateway::getAllUidCount(),
        'getClientIdByUid'          => Gateway::getClientIdByUid('123'),
    ]);
    
    sleep(1);
}

执行的日志

[centos@ip-172-20-4-112 GatewayWorker]$ php -f ./bin/demo.php 
register=127.0.0.1:1239
array(2) {
  ["Gateway::getAllUidCount()"]=>
  int(5)
  ["getClientIdByUid"]=>
  array(1) {
    [0]=>
    string(20) "000000000beb00000320"
  }
}
array(2) {
  ["Gateway::getAllUidCount()"]=>
  int(5)
  ["getClientIdByUid"]=>
  array(1) {
    [0]=>
    string(20) "000000000beb00000320"
  }
}
array(2) {
  ["Gateway::getAllUidCount()"]=>
  int(5)
  ["getClientIdByUid"]=>
  array(1) {
    [0]=>
    string(20) "000000000beb00000320"
  }
}
array(2) {
  ["Gateway::getAllUidCount()"]=>
  int(5)
  ["getClientIdByUid"]=>
  array(1) {
    [0]=>
    string(20) "000000000beb00000320"
  }
}
PHP Fatal error:  Uncaught Exception: Gateway::getAllGatewayAddressesFromRegister() with registerAddress:"127.0.0.1:1239"  return array (
) in /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php:1314
Stack trace:
#0 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(726): GatewayClient\Gateway::getAllGatewayAddressesFromRegister()
#1 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(701): GatewayClient\Gateway::getAllGatewayAddress()
#2 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(650): GatewayClient\Gateway::getBufferFromAllGateway()
#3 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(445): GatewayClient\Gateway::select()
#4 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(466): GatewayClient\Gateway::getAllUidList()
#5 /www/wwwroot/GatewayWorker/bin/demo.php(26): GatewayClient\Gateway::getAllUidCount()
#6 {main}
  thrown in /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php on line 1314

Fatal error: Uncaught Exception: Gateway::getAllGatewayAddressesFromRegister() with registerAddress:"127.0.0.1:1239"  return array (
) in /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php:1314
Stack trace:
#0 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(726): GatewayClient\Gateway::getAllGatewayAddressesFromRegister()
#1 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(701): GatewayClient\Gateway::getAllGatewayAddress()
#2 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(650): GatewayClient\Gateway::getBufferFromAllGateway()
#3 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(445): GatewayClient\Gateway::select()
#4 /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php(466): GatewayClient\Gateway::getAllUidList()
#5 /www/wwwroot/GatewayWorker/bin/demo.php(26): GatewayClient\Gateway::getAllUidCount()
#6 {main}
  thrown in /www/wwwroot/GatewayWorker/vendor/workerman/gatewayclient/Gateway.php on line 1314

有时候返回的数据是正常的, 有时候报错

jun3372 avatar Jan 08 '21 11:01 jun3372

image

jun3372 avatar Jan 08 '21 11:01 jun3372

运行ps auxf ,看下是不是启动了多个register进程。

walkor avatar Jan 08 '21 12:01 walkor