日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

ジョブオブジェクトを使用した非同期処理

寄稿者

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

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

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

注記 非同期的に処理する API 呼び出しを決定するには、 ONTAP Select Deploy のオンラインドキュメントページを参照してください。

API 要求に関連付けられたジョブオブジェクトの照会

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

  • キューに登録され

  • 実行中です

  • 成功

  • 失敗

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

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

  • ロングポーリング要求のジョブ状態は、次のいずれかの場合にのみ返されます。

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

    • タイムアウト値が期限切れ( 1 ~ 120 秒)

標準のポーリングとロングポーリングでは、同じ API 呼び出しを使用してジョブオブジェクトが照会されます。ただし ' 長いポーリング要求には 'poll_timeout' と 'last_modified' の 2 つのクエリーパラメータが含まれています

ヒント Deploy 仮想マシンのワークロードを減らすためには、常に長いポーリングを使用してください。

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

非同期 API 呼び出しを完了する大まかな手順を次に示します。

  1. 問題:非同期 API 呼び出し。

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

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

  4. ループ内で、各サイクルで次の手順を実行します。

    1. 長時間のポーリング要求でジョブの現在の状態を取得します

    2. ジョブが非終了状態(待機中、実行中)の場合は、もう一度ループを実行します。

  5. ジョブが終了状態( success または failure )になったら停止します。