非同期結果を取得する
使用できます `GetAsyncResult`非同期メソッド呼び出しの結果を取得します。一部のメソッド呼び出しは実行に時間がかかるため、システムが最初の応答を送信したときに完了していない可能性があります。メソッド呼び出しのステータスまたは結果を取得するには、 `GetAsyncResult`メソッドによって返される asyncHandle 値をポーリングします。
`GetAsyncResult`操作の全体的なステータス (進行中、完了、またはエラー) を標準的な方法で返しますが、操作に対して返される実際のデータは元のメソッド呼び出しによって異なり、返されるデータは各メソッドで文書化されます。
keepResult パラメータが指定されていないか false の場合、結果が返されたときに asyncHandle は非アクティブになり、その後 asyncHandle をクエリしようとするとエラーが返されます。 keepResult パラメータを true に設定することで、将来のクエリに対して asyncHandle をアクティブなままにすることができます。
パラメータ
このメソッドには次の入力パラメータがあります。
| Name | 説明 | タイプ | デフォルト値 | 必須 |
|---|---|---|---|---|
非同期ハンドル |
元の非同期メソッド呼び出しから返された値。 |
integer |
なし |
はい |
結果を保持 |
true の場合、GetAsyncResult は非同期結果を返すときにそれを削除せず、その asyncHandle への将来のクエリを有効にします。 |
ブーリアン |
false |
いいえ |
戻り値
このメソッドには次の戻り値があります。
| Name | 説明 | タイプ |
|---|---|---|
ステータス |
非同期メソッド呼び出しのステータス。有効な値は次のとおりです。
|
string |
結果 |
非同期メソッドが正常に完了した場合、これは非同期操作の結果です。非同期操作が失敗した場合、このメンバーは存在しません。 |
string |
エラー |
ステータスが完了し、非同期メソッドが失敗した場合、このメンバーにはエラーの詳細が含まれます。非同期操作が成功した場合、このメンバーは存在しません。 |
string |
結果タイプ |
非同期メソッド呼び出しが実行している、または実行していた操作の種類。 |
string |
詳細 |
ステータスが実行中の場合、このメンバーにはメソッドの現在の操作に関連する情報が含まれます。非同期メソッドが実行されていない場合、このメンバーは存在しません。 |
JSON オブジェクト |
作成時間 |
非同期メソッドが呼び出された時刻(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"
}
}
「response.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"
}
}
「response.result.result」は、呼び出しが正常に完了した場合の元のメソッド呼び出しの戻り値です。
バージョン以降の新機能
9.6