如何在gRPC Python中的消息接收上实现服务器端双向流超时?

问题描述

客户端向grpc服务中的双向流Hello方法发送消息。
服务器从客户端收到消息并回复HelloReply()。

这是我想做的: 如果服务器在2秒钟内未收到来自客户端的任何消息,请中止连接。
我尝试使用以下代码执行此操作,但不起作用...

需要帮助,谢谢。

class ServerServicer(service_pb2_grpc.HelloServicer):
    def Hello(self,request_iterator,context: grpc.ServicerContext):
        try:
        #     message_receive_time = time.time()
        #     def timeout():
        #         while True:
        #             if time.time() - message_receive_time > 2:
        #                 context.abort(grpc.StatusCode.DEADLINE_EXCEEDED,'RPC Time Out!')
        #     timeout_task = threading.Thread(target=timeout)
        #     timeout_task.start()
            for request in request_iterator:
                message_receive_time = time.time()
                yield service_pb2.HelloReply()
        except Exception as error:
            traceback.print_exc()
        # timeout_task.close()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)