in dubbo/connection/connections.py [0:0]
def get(self, host, request_param, timeout=None):
"""
执行远程调用获取数据
:param host:
:param request_param:
:param timeout:
:return:
"""
conn = self._get_connection(host)
request = Request(request_param)
request_data = request.encode()
invoke_id = request.invoke_id
event = threading.Event()
self.conn_events[invoke_id] = event
# 发送数据
conn.write(request_data)
logger.debug('Waiting response, invoke_id={}, timeout={}, host={}'.format(invoke_id, timeout, host))
event.wait(timeout)
del self.conn_events[invoke_id]
if invoke_id not in self.results:
err = "Socket(host='{}'): Read timed out. (read timeout={})".format(host, timeout)
raise DubboRequestTimeoutException(err)
result = self.results.pop(invoke_id)
if isinstance(result, Exception):
logger.exception(result)
logger.error('Exception {} for host {}'.format(result, host))
raise result
return result