异步处理在使用作业对象时的工作原理
发出设计为异步运行的 API 请求后,系统会创建一个作业对象并将其返回给调用者。此作业描述并锚定处理该请求的后台任务。根据 HTTP 状态代码,必须检索作业的状态以确定请求是否成功。
请参阅 ONTAP API 在线文档页面,以确定哪些 API 调用设计为异步执行。
控制请求的处理方式
可以使用 return_timeout 查询参数控制如何处理异步的 API 调用。使用此参数时有两种可能的结果。
- 计时器在请求完成之前到期
- 对于有效的请求,ONTAP 将 202 HTTP 状态代码随作业对象一起返回。必须检索作业的状态以确定请求是否已成功完成。
- 请求在计时器到期之前完成
- 如果请求有效并在时间到期之前成功完成,则 ONTAP 将 200 HTTP 状态代码随作业对象一起返回。因为请求是同步完成的(根据代码 200 可知),所以不需要检索作业状态。
注
return_timeout 参数的默认值为零秒。因此,如果不包含该参数,则始终会为有效的请求返回 202 HTTP 状态代码。
查询与 API 请求关联的作业对象
HTTP 响应中返回的作业对象包含多个属性。可以在后续 API 调用中查询 state 属性以确定是否已成功完成请求。作业对象始终处于以下状态之一:
- 非终端状态
已排队
正在运行
已暂停
- 终端状态
成功
失败
发出异步请求的一般过程
可以使用以下高度概括的过程来完成异步 API 调用。此示例假设不使用 return_timeout 参数,或者在后台作业完成之前时间到期。
发出设计为异步执行的 API 调用。
接收一个指示已接受有效请求的 HTTP 响应 202。
从响应正文中提取作业对象的标识。
在定时循环中,在每个周期内执行以下操作:
获取作业的当前状态。
如果作业处于非终端状态,再次执行循环。
作业到达终端状态(成功、失败)时停止。
提供反馈