GetAsyncResult
您可以使用 `GetAsyncResult`检索异步方法调用的结果。某些方法调用需要一段时间才能运行,并且在系统发送初始响应时可能无法完成。要获取方法调用的状态或结果、请使用 `GetAsyncResult`轮询方法返回的asyncHandle值。
`GetAsyncResult`以标准方式返回操作的整体状态(进行中、已完成或错误)、但为操作返回的实际数据取决于原始方法调用、并将返回数据与每个方法记录在一起。
如果 keepResult 参数缺失或错误,则返回结果后 asyncHandle 将变为非活动状态,并且稍后尝试查询 asyncHandle 时会返回错误。通过将 keepResult 参数设置为 true ,您可以使 asyncHandle 保持活动状态以供将来查询。
参数
此方法具有以下输入参数:
名称 | 说明 | 键入 | 默认值 | 必填 |
---|---|---|---|---|
异步处理 |
从原始异步方法调用返回的值。 |
整型 |
无 |
是 |
keepResult |
如果为 true ,则 GetAsyncResult 不会在返回异步结果后将其删除,从而允许将来查询该 asyncHandle 。 |
boolean |
false |
否 |
返回值
此方法具有以下返回值:
名称 | 说明 | 键入 |
---|---|---|
状态 |
异步方法调用的状态。可能值:
|
string |
结果 |
如果异步方法成功完成,则这是异步操作的结果。如果异步操作失败,则此成员不存在。 |
string |
错误 |
如果状态为 complete 且异步方法失败,则此成员包含错误详细信息。如果异步操作成功,则此成员不存在。 |
string |
resultType |
异步方法调用正在执行或正在执行的操作类型。 |
string |
详细信息 |
如果状态为 running ,则此成员包含与方法的当前操作相关的信息。如果异步方法未运行,则此成员不存在。 |
JSON 对象 |
CREATETIME |
调用异步方法的时间,采用 UTC+0 格式。 |
ISO 8601 日期字符串 |
最后更新时间 |
上次更新异步方法状态的时间,采用 UTC+0 格式。 |
ISO 8601 日期字符串 |
-
注: * GetAsyncResult 的返回值实质上是标准 JSON 响应的嵌套版本,并具有一个附加的状态字段。
请求示例
此方法的请求类似于以下示例:
{ "method": "GetAsyncResult", "params": { "asyncHandle" : 389 }, "id" : 1 }
响应示例:方法错误
此方法返回类似于以下示例的响应:
{ "error": { "code": 500, "message": "DBClient operation requested on a non-existent path at [/asyncresults/1]", "name": "xDBNoSuchPath" }, "id": 1 }
如果 "response" 是 GetAsyncResult 调用中的 JSON 响应对象,则 "response.error" 将与 GetAsyncResult 方法本身的错误相对应(例如,查询不存在的 asyncHandle )。
响应示例:异步任务错误
此方法返回类似于以下示例的响应:
{ "id": 1, "result": { "createTime": "2016-01-01T02:05:53Z", "error": { "bvID": 1, "message": "Bulk volume job failed", "name": "xBulkVolumeScriptFailure", "volumeID": 34 }, "lastUpdateTime": "2016-01-21T02:06:56Z", "resultType": "BulkVolume", "status": "complete" } }
reonse.result.error
对应于原始方法调用的错误结果。
响应示例:异步任务成功
此方法返回类似于以下示例的响应:
{ "id": 1, "result": { "createTime": "2016-01-01T22:29:18Z", "lastUpdateTime": "2016-01-01T22:45:51Z", "result": { "cloneID": 25, "message": "Clone complete.", "volumeID": 47 }, "resultType": "Clone", "status": "complete" } }
reonse.result.result
是在调用成功完成时原始方法调用的返回值。
自版本以来的新增功能
9.6