長時間実行オペレーション

Dialogflow API の一部のメソッドは長時間実行オペレーションを返します。これらのメソッドは非同期で、メソッドがレスポンスを返すときにオペレーションが完了していない場合があります。オペレーションのステータスを確認し、キャンセルすることもできます。

オペレーションのステータスを取得する

以下に、オペレーションのステータスをポーリングする方法を示します。確認するオペレーションが多い場合は、呼び出しをレート制限するか、list メソッドを使用してください。

REST

Operationsタイプの get メソッドを呼び出します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: GCP プロジェクト ID
  • OPERATION_ID: オペレーション ID
  • API_VERSION: v2 または v2beta1

HTTP メソッドと URL:

GET https://dialogflow.googleapis.com/API_VERSION/projects/my-gcp-project/operations/OPERATION_ID

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/operations/some-operation-name-OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.dialogflow.API_VERSION.SomeOperationType",
    "state": "DONE"
  },
  "done": true,
  ...
}

オペレーションが完了すると、SUCCESSFULstate 値が戻されます。

オペレーションの一覧表示とキャンセル

特定のオペレーションの取得に加えて、オペレーションの一覧表示およびキャンセルができます。Operations タイプの list メソッドと cancel メソッドをご覧ください。

list の結果には、現在のタスクとは無関係のオペレーションが含まれている可能性があるため、必ず結果をフィルタしてください。