grpc-python - 如何在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()
解决方案
推荐阅读
- google-colaboratory - Colab:上传目录中存在的文件
- c# - 如何在 Xamarin Android 中触发振铃模式更改事件
- .htaccess - 多个域加载相同的数据库导致加载内容出现问题
- node.js - NodeJS ESM Unexpected identifier express //不确定问题是否来自节点
- java - 编译 xamarin-android 应用程序时出现 java.exe 错误
- json - 如何在angular2应用程序中使用Node.js的读写属性删除和更新json格式的数据
- twitter - Tweepy:查找特定语言的所有推文
- haskell - getAuthEntity 失败“无法匹配预期类型”
- angular - 离子 3 中的“运行时错误区域已加载”
- python-3.x - 将列转换为时间戳 - Pandas Dataframe