简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

GetAsyncResult

提供者

您可以使用 GetAsyncResult 检索异步方法调用的结果。某些方法调用需要一段时间才能运行,并且在系统发送初始响应时可能无法完成。要获取方法调用的状态或结果,请使用 GetAsyncResult 轮询方法返回的 asyncHandle 值。

GetAsyncResult 以标准方式返回操作的整体状态(正在进行,已完成或错误),但为操作返回的实际数据取决于原始方法调用,并且返回的数据会随每个方法记录在一起。

如果 keepResult 参数缺失或错误,则返回结果后 asyncHandle 将变为非活动状态,并且稍后尝试查询 asyncHandle 时会返回错误。通过将 keepResult 参数设置为 true ,您可以使 asyncHandle 保持活动状态以供将来查询。

Parameters

此方法具有以下输入参数:

Name Description Type 默认值 Required

异步处理

从原始异步方法调用返回的值。

整型

是的。

keepResult

如果为 true ,则 GetAsyncResult 不会在返回异步结果后将其删除,从而允许将来查询该 asyncHandle 。

boolean

false

返回值

此方法具有以下返回值:

Name Description Type

status

异步方法调用的状态。可能值:

  • running :此方法仍在运行。

  • complete :此方法已完成,并且结果或错误可用。

string

结果

如果异步方法成功完成,则这是异步操作的结果。如果异步操作失败,则此成员不存在。

string

error

如果状态为 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