长时运行操作:实现异步 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
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



