配置队列路由、限制和重试

您可以在创建 Cloud Tasks 队列时或之后的任何时间配置该队列。该配置将应用于相应队列中的所有任务。

配置队列需要注意三个基本方面:

配置队列级路由

在队列级别配置的路由会覆盖在任务级别设置的路由。 如果您想将 Cloud Tasks 用作目标服务前面的缓冲区,或者需要更改队列中所有任务的路由,则此方法非常有用。

队列级路由适用于:

  • 队列中的任务
  • 在设置队列级路由后添加到队列中的任务

限制

队列级路由与 Cloud Key Management Service (Cloud KMS) 客户管理的加密密钥 (CMEK) 不兼容。如果启用了 CMEK,您将无法执行以下操作:

  • 在具有队列级路由的队列中创建任务
  • 应用队列级转送

为 HTTP 任务配置队列级路由

您可以在创建队列时或更新队列时配置队列以替换任务级路由。如需配置队列级路由,请将队列的 uriOverride 参数设置为首选路由。

如果您要将队列级路由作为对现有队列的更新来应用,请在应用更改之前暂停队列,并在应用更改后等待一分钟,然后再恢复队列。

  1. 运行以下命令,暂停队列

      gcloud tasks queues pause QUEUE_ID
      

    QUEUE_ID 替换为您的队列的 ID。

  2. 更新或移除队列级路由。

    • 如需更新队列级路由,请将 uriOverride 参数设置为更新后的路由。

    • 如需使用 REST 或 RPC API 移除队列级路由,请执行以下操作:

      • REST API:发送 patch 请求,其中包含空载荷,并将 updateMask 参数设置为 httpTarget

      • RPC API:针对队列发送一个空载荷的 updateQueueRequest,并将 update_mask 参数设置为 http_target

    以下示例使用 REST API 更新任务的路由目标主机:

    curl -X PATCH