Skip to main content
本製品の最新リリースがご利用いただけます。
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

ONTAP Select の Job オブジェクトを使用した非同期処理

Deploy API の呼び出しの中には、特にリソースを作成または変更する呼び出しは、他の呼び出しよりも完了に時間がかかる場合があります。ONTAP Select Deploy は、これらの長時間実行されるリクエストを非同期で処理します。

ジョブ オブジェクトを使用して記述された非同期要求

非同期的に実行されるAPI呼び出しを行うと、HTTP応答コード202が返されます。この応答コードは、要求が正常に検証され受け入れられたものの、まだ完了していないことを示します。要求はバックグラウンド タスクとして処理され、クライアントへの最初のHTTP応答後も引き続き実行されます。応答には、要求に対応するジョブ オブジェクトと、その一意の識別子が含まれます。

メモ どの API 呼び出しが非同期で動作するかを判断するには、ONTAP Select Deploy オンライン ドキュメント ページを参照してください。

API リクエストに関連付けられた Job オブジェクトを照会する

HTTP応答で返されるジョブ オブジェクトには、いくつかのプロパティが含まれています。状態プロパティを照会して、要求が正常に完了したかどうかを確認できます。ジョブ オブジェクトは次のいずれかの状態になります。

  • キュー登録済み

  • 実行中

  • 成功

  • 失敗

ジョブ オブジェクトをポーリングしてタスクの最終状態(成功または失敗)を検出するには、2つの方法があります。

  • 標準のポーリング要求 現在のジョブの状態はすぐに返されます

  • ロングポーリングリクエストのジョブ状態は、以下のいずれかの条件が満たされた場合にのみ返されます:

    • ポーリング要求で指定された日時値よりも最近、状態が変更されました

    • タイムアウト値が経過しました(1~120秒)

標準ポーリングとロングポーリングは、ジョブオブジェクトを照会するために同じAPI呼び出しを使用します。ただし、ロングポーリングリクエストには2つのクエリパラメータが含まれます( poll_timeout`および `last_modified)。

ヒント Deploy 仮想マシンのワークロードを軽減するには、常にロング ポーリングを使用する必要があります。

非同期要求を発行するための一般的な手順

以下は、非同期API呼び出しを完了する手順の概要です。

  1. 非同期API呼び出しを実行します。

  2. 要求が正常に受け取られたことを示すHTTP応答202を受信します。

  3. 応答の本文からジョブ オブジェクトの識別子を抽出します。

  4. ループ内で、各サイクルで以下の処理を実行します:

    1. ロングポーリングリクエストを使用してジョブの現在の状態を取得します

    2. ジョブが非終了状態(キューに入っている、実行中)の場合は、ループを再度実行します。

  5. ジョブが終了状態(成功、失敗)に達したら停止します。