19、长时运行操作:实现异步 API 调用的解决方案

长时运行操作:实现异步 API 调用的解决方案

在 API 开发中,大部分请求能够迅速处理并在短时间内给出响应。然而,当遇到需要大量时间和资源的操作时,传统的同步 API 设计就显得力不从心。本文将深入探讨长时运行操作(Long-running operations,简称 LROs),介绍其动机、概述、实现方式以及如何获取操作结果。

1. 动机

目前,我们所接触的 API 方法大多是即时且同步的。服务接收到请求后立即处理,并迅速返回响应。这种设计方式在处理简单任务时效果良好,例如查询数据库行并返回结果。但当工作变得复杂、资源消耗大时,问题就出现了。

假设我们的 API 请求需要较长时间才能完成,这会让开发者陷入困境。在开发过程中,我们通常遵循“编写、编译、测试”的循环。如果 API 请求耗时过长,我们可能会认为代码存在问题,终止进程,添加打印语句或启动调试器,然后再次运行代码。经过多次尝试后,才发现文档中提到该请求可能需要一些时间,需要耐心等待响应。

以下是一个示例代码,用于监控创建聊天室资源时的进度:

function main() {
  let client = ChatRoomApiClient();
  let chatRoomName = generateChatRoomName();
  console.log(`Generated name ${chatRoomName}`);  // #A
  let chatRoom = client.CreateChatRoom({ name: chatRoomName });  // #B
  console.lo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值