简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。
使用作业对象进行异步处理
贡献者
建议更改
某些 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 调用。
-
问题描述异步 API 调用。
-
接收表示已成功接受请求的 HTTP 响应 202 。
-
从响应正文中提取作业对象的标识符。
-
在环路中,在每个周期中执行以下操作:
-
获取具有长时间轮询请求的作业的当前状态
-
如果作业处于非终端状态(已排队,正在运行),请重新执行环路。
-
-
当作业达到终端状态(成功,失败)时停止。