ONTAP Selectのジョブオブジェクトを使用した非同期処理
一部のDeploy API呼び出し、特にリソースの作成または変更を行う呼び出しは、他の呼び出しよりも完了までに時間がかかる場合があります。ONTAPONTAP Select Deployは、これらの長時間実行される要求を非同期的に処理します。
ジョブ オブジェクトを使用して記述された非同期要求
非同期的に実行されるAPI呼び出しを行うと、HTTP応答コード202が返されます。この応答コードは、要求が正常に検証され受け入れられたものの、まだ完了していないことを示します。要求はバックグラウンド タスクとして処理され、クライアントへの最初のHTTP応答後も引き続き実行されます。応答には、要求に対応するジョブ オブジェクトと、その一意の識別子が含まれます。
|
どの API 呼び出しが非同期に動作するかを判断するには、 ONTAP Select Deploy のオンライン ドキュメント ページを参照する必要があります。 |
APIリクエストに関連付けられたジョブオブジェクトをクエリする
HTTP応答で返されるジョブ オブジェクトには、いくつかのプロパティが含まれています。状態プロパティを照会して、要求が正常に完了したかどうかを確認できます。ジョブ オブジェクトは次のいずれかの状態になります。
-
キュー
-
実行中
-
成功
-
失敗
ジョブ オブジェクトをポーリングしてタスクの最終状態(成功または失敗)を検出するには、2つの方法があります。
-
標準ポーリング要求現在のジョブ状態が直ちに返されます
-
ロングポーリング要求ジョブ状態は、次のいずれかが発生した場合にのみ返されます。
-
状態は、ポーリング要求で指定された日時値よりも最近に変更されました
-
タイムアウト値が経過しました(1~120秒)
-
標準ポーリングとロングポーリングは、同じAPI呼び出しを使用してジョブオブジェクトをクエリします。ただし、ロングポーリングリクエストには2つのクエリパラメータが含まれます。 poll_timeout`そして `last_modified
。
|
デプロイ仮想マシンのワークロードを軽減するには、常にロングポーリングを使用する必要があります。 |
非同期リクエストを発行するための一般的な手順
以下は、非同期API呼び出しを完了する手順の概要です。
-
非同期API呼び出しを実行します。
-
要求が正常に受け取られたことを示すHTTP応答202を受信します。
-
応答の本文からジョブ オブジェクトの識別子を抽出します。
-
ループ内では、各サイクルで次の操作を実行します。
-
ロングポーリングリクエストでジョブの現在の状態を取得する
-
ジョブが非終了状態(キューに入れられ、実行中)の場合、ループを再度実行します。
-
-
ジョブが終了状態 (成功、失敗) に達したら停止します。