问题描述
我们正在尝试应用 gRPC 双向流式传输。原型:
message Request {
oneof requestTypes{
ConfigRequest configRequest = 1;
DataRequest dataRequest = 2;
}
}
message ConfigRequest {
request_quantity = 1;
...
}
message DataRequest {
string id = 1;
bytes data = 2;
...
}
service Service {
rpc FuncService(stream Request) returns (stream Response);
}
客户端用 C# 编写并包含异步。 如有必要,我可以澄清客户端代码。 服务器端在python中。 Python代码:
def FuncServe(self,request_iterator,context):
i = 0
for request in request_iterator:
...
if (i==request_quantity):
break
i+=1
问题是服务器在处理请求时循环挂起,所以我引入了一个 if-break 语句。到目前为止,一切正常,但我们希望在并非配置中规定的所有请求都已到达时计算出该选项。在这种情况下,我们无法避免在循环中挂起并捕获它。此外,我无法将循环移动到单独的线程中来控制执行时间,它由于迭代器为空而结束。 我将非常感谢在这个循环问题上的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)