本产品推出了新版本。
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。
使用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 调用:
-
发出异步 API 调用。
-
收到 HTTP 响应 202,表示成功接受请求。
-
从响应主体中提取 Job 对象的标识符。
-
在循环内,每次循环执行以下操作:
-
使用长轮询请求获取作业的当前状态
-
如果作业处于非终止状态(排队、运行),则再次执行循环。
-
-
当作业达到最终状态(成功、失败)时停止。