_base.py 文件源码

python
阅读 34 收藏 0 点赞 0 评论 0

项目:octopus 作者: ideascf 项目源码 文件源码
def _wait(self, action=None, timeout=None):
        """
        ???service_name??service??
        :param timeout:
        :type timeout: float
        :return:
        """

        remain = timeout

        waiter = Waiter()
        self._oc.add_waiter(self.service_name, waiter)
        try:
            while True:
                with Timeout(remain, _TimeOut):
                    start = time.time()
                    cur_action = waiter.get()
                    remain = remain - (time.time() - start)

                    if action is None:  # ???????????
                        break
                    elif action == cur_action:  # ????????
                        break
                    elif remain < 0.001:  # ????????1ms
                        raise _TimeOut
                    else:
                        continue
        except _TimeOut:  # ????
            return False
        except Exception as e:
            raise err.OctpParamError('catch unexpect error: %s. more: %s', e, traceback.format_exc())
        else:
            return True
        finally:
            self._oc.del_waiter(self.service_name, waiter)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号