轮询长时间运行的操作

本页面介绍了如何确定异步方法的完成状态。这些方法会返回长时间运行的操作,其中包含有关操作进度及其最终状态的信息。

以下方法会返回长时间运行的操作:

  • CreateKey
  • UpdateKey
  • DeleteKey
  • UndeleteKey

当您向其中一种方法发出请求时,如果成功,该方法会在 name 字段中返回一个操作标识符,表示服务器上正在进行的工作,例如:

{
  "name": "operations/akmf.6573437d-47c1-42c4-b817-0562f514f6ff"
}

如需检查操作的状态,请使用 operations.get 方法,并提供 name 字段中的值:

  gcurl https://apikeys.googleapis.com/v2/operations/akmf.6573437d-47c1-42c4-b817-0562f514f6ff

如要轮询操作,我们建议您以 10 秒的退避时间重复调用 operations.get 方法,直到响应包含 "done": true

{
  "name": "operations/akmf.6573437d-47c1-42c4-b817-0562f514f6ff",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.api.apikeys.v2.Key",
    "name": "projects/103621867718/locations/global/keys/b7ff1f9f-8275-410a-94dd-3855ee9b5dd2",
    "keyString": "----REDACTED----",
    "createTime": "2019-02-04T23:56:28.531Z",
    "uid": "b7ff1f9f-8275-410a-94dd-3855ee9b5dd2",
    "updateTime": "2019-02-04T23:56:28.531Z",
    "restrictions": {
      "browserKeyRestrictions": {
      }
    },
    "etag": "k0bsYGkIvSxDVwNxyw49NQ=="
  }
}