ジョブオブジェクトを使用した非同期処理
非同期で実行するように設計された API 要求を発行すると、常にジョブオブジェクトが作成されて呼び出し元に返されます。このジョブは、要求を処理するバックグラウンドタスクを記述してアンカーを設定します。HTTP ステータスコードによっては、要求が成功したかどうかを確認するためにジョブの状態を取得する必要があります。
を参照してください "API リファレンス" 非同期で実行するように設計されている API 呼び出しを確認します。
要求の処理方法を制御する
「 return turn _ timeout 」クエリーパラメータを使用して、非同期 API 呼び出しの処理方法を制御できます。このパラメータを使用した場合の結果には次の 2 つがあります。
- 要求が完了する前にタイマーが期限切れになります
-
有効な要求の場合、 ONTAP はジョブオブジェクトとともに HTTP ステータスコード 202 を返します。要求が正常に完了したかどうかを確認するには、ジョブの状態を取得する必要があります。
- 要求は、タイマーが切れる前に完了します
-
要求が有効で時間切れになる前に正常に完了すると、 ONTAP はジョブオブジェクトとともに HTTP ステータスコード 200 を返します。200 は要求が同期的に完了したことを示すため、ジョブの状態を取得する必要はありません。
`re turn _timeout' パラメータのデフォルト値は 0 秒ですしたがって、パラメータを指定しない場合は、有効な要求に対して常に HTTP ステータスコード 202 が返されます。
API 要求に関連付けられたジョブオブジェクトの照会
HTTP 応答で返されるジョブオブジェクトには、いくつかのプロパティが含まれています。後続の API 呼び出しで state プロパティを照会することで、要求が正常に完了したかどうかを確認できます。ジョブオブジェクトは常に次のいずれかの状態になります。
- 非終了状態
-
-
キューに登録され
-
実行中です
-
一時停止中
-
- 終了状態
-
-
成功
-
失敗
-
非同期要求を発行するための一般的な手順
非同期 API 呼び出しを完了する大まかな手順を次に示します。この例では、「 re turn _timeout 」パラメータが使用されていないか、バックグラウンドジョブが完了する前に時間が経過していると仮定しています。
-
問題非同期で実行するように設計された API 呼び出し。
-
有効な要求を受け入れたことを示す HTTP 応答 202 を受信します。
-
応答の本文からジョブオブジェクトの識別子を抽出します。
-
タイミングループ内で、サイクルごとに次の操作を実行します。
-
ジョブの現在の状態を取得します。
-
ジョブが非終了状態の場合は、もう一度ループを実行します。
-
-
ジョブが終了状態( success または failure )になったら停止します。