长时间运行的操作

Dialogflow API 的某些方法会返回长时间运行的操作。这些方法是异步执行的,当方法返回响应时,操作可能尚未完成。您可以查看状态或取消操作。

获取操作状态

下文介绍了如何轮询操作的状态。 如果您有许多操作需要检查,则应对调用进行速率限制或改用 list 方法。

REST

Operations 类型调用 get 方法。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:您的 GCP 项目 ID
  • OPERATION_ID:您的操作 ID
  • API_VERSIONv2v2beta1

HTTP 方法和网址:

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,
  ...
}

操作完成后,系统会返回 stateSUCCESSFUL

列出和取消操作

除了获取特定操作之外,您还可以列出和取消操作。请参阅 Operations 类型的 listcancel 方法。

list 结果可能包含与当前任务无关的操作,因此请务必过滤结果。