Skip to main content
ONTAP Select
本产品推出了新版本。
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

使用ONTAP Select 的作业对象进行异步处理

某些 Deploy API 调用(尤其是创建或修改资源的调用)可能需要比其他调用更长的时间才能完成。ONTAPONTAP Select Deploy 会异步处理这些长时间运行的请求。

使用 Job 对象描述的异步请求

进行异步运行的 API 调用后,HTTP 响应代码 202 表示请求已成功验证并接受,但尚未完成。该请求将作为后台任务处理,并在客户端收到初始 HTTP 响应后继续运行。响应中包含锚定该请求的 Job 对象及其唯一标识符。

备注 您应该参考ONTAP Select Deploy 在线文档页面来确定哪些 API 调用是异步操作的。

查询与 API 请求关联的 Job 对象

HTTP 响应中返回的 Job 对象包含多个属性。您可以查询 state 属性来确定请求是否已成功完成。Job对象可以处于以下状态之一:

  • 已排队

  • 正在运行

  • 成功

  • 失败

轮询 Job 对象来检测任务的最终状态(成功或失败)时,可以使用两种技术:

  • 标准轮询请求立即返回当前作业状态

  • 长轮询请求仅当发生以下情况之一时才返回作业状态:

    • 状态更改的时间比轮询请求中提供的日期时间值更近

    • 超时值已过期(1 至 120 秒)

标准轮询和长轮询使用相同的 API 调用来查询作业对象。不过,长轮询请求包含两个查询参数: poll_timeout`和 `last_modified

提示 您应该始终使用长轮询来减少 Deploy 虚拟机上的工作负载。

发出异步请求的一般过程

您可以使用以下高级过程来完成异步 API 调用:

  1. 发出异步 API 调用。

  2. 收到 HTTP 响应 202,表示成功接受请求。

  3. 从响应主体中提取 Job 对象的标识符。

  4. 在循环内,每次循环执行以下操作:

    1. 使用长轮询请求获取作业的当前状态

    2. 如果作业处于非终止状态(排队、运行),则再次执行循环。

  5. 当作业达到最终状态(成功、失败)时停止。