有没有办法从 Grpc-request 获取进度消息

Cow*_*org 2 grpc asp.net-core

我们的 asp net core api 中有 Grpc-api。我们的一些操作需要很长时间。我可以通过某种简单的方式向我的客户发回进度消息吗?

例如“从提供者 1 读取...”、“从提供者 2 读取...”、“计算内容...”。

由于最终结果是一条小消息,需要很短的时间发回,我认为流回数据没有意义,它的处理需要时间。

我尝试过谷歌搜索,但失败了

Jan*_*sch 5

gRPC 不支持开箱即用的 RPC“进度”报告,因为它不属于 gRPC 的功能。gRPC 是一个库,无法知道您在特定应用程序和特定 protobuf 服务定义中所认为的“进度”。

因此,解决方案是在 gRPC 之上的应用程序逻辑中实现进度报告。一种巧妙的方法是在服务器流调用之上定义自定义“协议”。响应可以是带有子消息的 protobuf“oneof”消息,具体取决于服务器想要报告的内容。例如,在客户端接收到的每个响应中,服务器可以表达当前进度信息(“ProgressInfo”消息)或实际结果(“ComputationResult”消息)。请注意,这是实现进度报告的唯一方法,但对我来说这听起来是最简单的一种。