【问题标题】:Is there a way to get progress messages from Grpc-request有没有办法从 Grpc-request 获取进度消息
【发布时间】:2020-10-14 12:04:46
【问题描述】:

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

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

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

我曾尝试 google,但失败了

【问题讨论】:

    标签: asp.net-core grpc


    【解决方案1】:

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

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

    【讨论】:

    • 好的,酷。我是这样的人,但在我通过我做一些自定义 ID 之前,我会问。我要称之为,AreWeThereYet。感谢您的澄清
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多