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

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

贡献者

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

使用作业对象描述的异步请求

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

备注 您应参阅 ONTAP Select Deploy 联机文档页面以确定哪些 API 调用异步运行。

查询与API请求关联的作业对象

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

  • 已排队

  • 正在运行

  • 成功

  • 失败

在轮询作业对象以检测任务的终端状态时,可以使用两种方法:成功或失败:

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

  • 只有在发生以下情况之一时,才会返回长轮询请求作业状态:

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

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

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

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

用于发出异步请求的常规操作步骤

您可以使用以下高级操作步骤完成异步 API 调用。

  1. 问题描述异步 API 调用。

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

  3. 从响应正文中提取作业对象的标识符。

  4. 在环路中,在每个周期中执行以下操作:

    1. 获取具有长时间轮询请求的作业的当前状态

    2. 如果作业处于非终端状态(已排队,正在运行),请重新执行环路。

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