msgpack-rpc / msgpack-rpc-python

MessagePack RPC implementation for Python
205 stars 72 forks source link

How to reinitialize msgpckrpc (python)? (to create a new client) #21

Open yannbouteiller opened 5 years ago

yannbouteiller commented 5 years ago

Hello,

I am having trouble with Microsoft AirSim, which uses msgpckrpc as its communication backend. AirSim does this in a python object:

self.client = msgpackrpc.Client(msgpackrpc.Address(ip, port), timeout = timeout_value, pack_encoding = 'utf-8', unpack_encoding = 'utf-8')

Let's say at some point AirSim freezes and I get a TimeoutError from msgpckrpc (which I do, see https://github.com/microsoft/AirSim-NeurIPS2019-Drone-Racing/issues/104 ). So I want to instantiate a new version of this python object (with another msgpackrpc.Address(ip, port) ).

However, doing this apparently simple thing is actually a nightmare and fails because msgpackrpc/tornado don't get properly reinitialized in the process. How can I properly reinitialize msgpckrpc please ?