def get_stub_to_server(target, stub_class, time_out_seconds=None, is_check_status=True):
"""gRPC connection to server
:return: stub to server
"""
if time_out_seconds is None:
time_out_seconds = conf.CONNECTION_RETRY_TIMEOUT
stub = None
start_time = timeit.default_timer()
duration = timeit.default_timer() - start_time
while stub is None and duration < time_out_seconds:
try:
logging.debug("(util) get stub to server target: " + str(target))
channel = grpc.insecure_channel(target)
stub = stub_class(channel)
if is_check_status:
stub.Request(loopchain_pb2.Message(code=message_code.Request.status), conf.GRPC_TIMEOUT)
except Exception as e:
logging.warning("Connect to Server Error(get_stub_to_server): " + str(e))
logging.debug("duration(" + str(duration)
+ ") interval(" + str(conf.CONNECTION_RETRY_INTERVAL)
+ ") timeout(" + str(time_out_seconds) + ")")
# RETRY_INTERVAL ?? ??? TIMEOUT ??? ?? ??
time.sleep(conf.CONNECTION_RETRY_INTERVAL)
duration = timeit.default_timer() - start_time
stub = None
return stub
评论列表
文章目录