22、长运行操作(LRO)的全面解析

长运行操作(LRO)的全面解析

在处理长运行操作(LRO)时,我们不仅要关注如何获取操作结果,还需要考虑当结果不成功时如何处理错误,以及如何监控操作进度、取消操作、暂停和恢复操作、探索操作状态和制定操作记录的持久化策略。下面将详细介绍这些方面的内容。

1. 错误处理

在大多数 Web API 中,错误通常以 HTTP 错误代码和消息的形式呈现。例如,404 Not Found 表示资源未找到,403 Forbidden 表示没有访问资源的权限。在同步响应中,这种处理方式很有效,但在 LRO 的异步世界中,情况就有所不同。

如果简单地在 LRO 失败时传递错误响应,可能会带来严重问题。例如,当 GetOperation 方法返回 500 Internal Server Error 时,我们无法确定这是操作本身的错误,还是处理 GetOperation 方法的代码出错。因此,我们需要一种替代方案。

我们可以允许返回操作结果(ResultT 类型)或 OperationError 类型。OperationError 类型包含机器可读的代码、便于人类理解的描述以及用于存储额外错误细节的任意结构。GetOperation 方法只有在检索 Operation 资源时出现实际错误时才抛出异常(返回 HTTP 错误)。如果成功检索到 Operation 资源,错误响应只是 LRO 结果的一部分,由客户端代码决定是抛出客户端异常还是以其他方式处理错误结果。

以下是一个示例代码,展示如何调整 createChatRoomAndWait() 函数来处理可能的错误结果:

fu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值