ping timeout

版本:nebula2-python 2.6.0


    def ping(self, address):
        """check the server is ok

        :param address: the server address want to connect
        :return: True or False
        """
        try:
            conn = Connection()
            if self._ssl_configs is None:
                conn.open(address[0], address[1], 1000)
            else:
                conn.open_SSL(address[0], address[1], 1000, self._ssl_configs)
            conn.close()
            return True
        except Exception as ex:
            logging.warning('Connect {}:{} failed: {}'.format(address[0], address[1], ex))
            return False

这个timeout的1000ms,为啥不能改呢?

我这边经常报错:
RuntimeError: The services status exception: [services: (‘0.0.0.0’, 32386), status: BAD]

这个配置异常啊,:thinking: 我觉得和 timeout 没关系,你把你 python 代码中连接 Neb啦 那部分的代码贴一下,还有 Nebula 本身的配置文件也贴一下。

我改成conn.open(address[0], address[1], 10),就一直复现这个错误,改成0就是不设置timeout就没有问题

这个应该是读取了 address 这个数组对吧,:thinking: 所以你的 address 数组是参数是啥。

就IP和端口啊
(‘22*...57’, 32*86)

为啥要改ping里面的 timeout ? 是觉得给的 timeout 太久了吗? 怀疑是改成 10 timeout 太小导致超时了所以报错

默认的是1000,然后我连接的时候会不时的报这个问题,调整成0或者更大的数字就不会,改成10是为了稳定的复现这个问题

1000是一个经验值, 因为 ping() 就是为了测一下服务可不可用所以没有定义成可配置项, 你是咋部署服务的? 网络繁忙吗?

单机部署和集群部署都有这个问题,网络的原因也有吧,但是就是不想报这个错,有什么优化方法吗?

目前需要你手动改代码把timeout改大点了

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。