async def connect(path, *, loop=None): dht = await getDHT() if isinstance(path, Connection): path = path.path addr = await dht.get(path) if addr is None: raise QuLabRPCError(f'Unknow RPC path {path}.') return Connection(path, loop=loop)
async def _connect(self): try: addr = _getAddressOnRedis(self.path) except RedisNotSetError: dht = await getDHT() addr = await dht.get(self.path) if addr is None: raise QuLabRPCError(f"Unknow RPC path {self.path}.") return ZMQClient(addr, loop=self.loop)
async def connect(path, *, loop=None): dht = await getDHT() if isinstance(path, Connection): path = path.path try: addr = _getAddressOnRedis(path) except RedisNotSetError: addr = await dht.get(path) if addr is None: raise QuLabRPCError(f'Unknow RPC path {path}.') return Connection(path, loop=loop)
async def connect(self): if self.path not in Connection._zmq_client_table: Connection._zmq_client_table[self.path] = await self._connect() retry = 0 while retry < 3: if not await Connection._zmq_client_table[self.path].ping(): Connection._zmq_client_table[self.path] = await self._connect() else: break retry += 1 else: raise QuLabRPCError(f'Can not connect to {self.path}') self.zmq_client = Connection._zmq_client_table[self.path]
async def _connect(self): dht = await getDHT() addr = await dht.get(self.path) if addr is None: raise QuLabRPCError(f"Unknow RPC path {self.path}.") return ZMQClient(addr, loop=self.loop)
def _unpack_request(self, msg): try: method, args, kw = unpack(msg) except: raise QuLabRPCError("Could not read packet: %r" % msg) return method, args, kw