创建 Cloud Tasks 队列

本页介绍了如何创建 Cloud Tasks 队列。将任务添加到队列后,队列会分派这些任务,并确保服务(也称为工作器)可靠地处理这些任务。

请注意以下几点:

  • 队列名称由三个部分组成:项目 ID、位置和队列 ID。 您必须具有提供项目 ID 的 Google Cloud 项目

  • 如果您使用的是 App Engine 目标任务,则还必须具有 App Engine 应用。该应用位于特定的区域,且此区域是队列和处理程序运行的位置。记下您添加应用时所在的区域。

  • 使用 HTTP Target 任务不需要 App Engine 应用。在创建队列时,您可以选择 Google Cloud 位置。

创建队列

您可以通过以下方式创建队列:

  • 在 Google Cloud Console 中
  • 在终端或 Cloud Shell 中使用 Google Cloud CLI
  • 通过向 Cloud Tasks API 发送直接请求

控制台

  1. 在 Google Cloud 控制台中,依次前往 Cloud Tasks > 队列页面。

    前往“队列”页面

  2. 点击 创建队列

  3. 输入队列名称,例如 my-queue

  4. 区域列表中,选择队列将运行到的受支持的位置,例如 asia-south1

    如果贵组织限制了资源位置,而您想在 us-central1us-central2 中创建队列,则组织政策必须允许同时在 us-central1us-central2 中创建队列(即使您只需要在其中一个区域中创建队列)。

  5. (可选)您可以进一步配置队列

  6. 点击创建

gcloud

使用 gcloud tasks queues create 命令创建队列:

  gcloud tasks queues create QUEUE_ID \
      --location=LOCATION

替换以下内容:

  • QUEUE_ID:您为队列分配的标识符,例如 my-queue

  • LOCATION:队列将运行的受支持区域,例如 asia-south1

    如果贵组织限制了资源位置,而您想在 us-central1us-central2 中创建队列,则组织政策必须允许同时在 us-central1us-central2 中创建队列(即使您只需要在其中一个区域中创建队列)。

您可以使用 gcloud CLI 命令的其他标志来配置速率限制、重试选项、队列类型等。

REST API

如需创建队列,请使用 projects.locations.queues.create 方法。

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

  • PROJECT_ID:您的 Google Cloud 项目 ID。
  • LOCATION:队列将运行的受支持区域,例如 asia-south1

    如果贵组织限制了资源位置,而您想在 us-central1us-central2 中创建队列,则组织政策必须允许同时在 us-central1us-central2 中创建队列(即使您只需要在其中一个区域中创建队列)。

  • QUEUE_ID:您为队列分配的标识符,例如 my-queue
Queue 资源的其他可配置属性包括速率限制、重试选项、队列类型等。

请求 JSON 正文:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID"
}

如需发送您的请求,请展开以下选项之一:

如果成功,响应正文将包含一个新创建的 Queue 实例:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID",
  "rateLimits": {
    "maxDispatchesPerSecond": 500,
    "maxBurstSize": 100,
    "maxConcurrentDispatches": 1000
  },
  "retryConfig": {
    "maxAttempts": 100,
    "minBackoff": "0.100s",
    "maxBackoff": "3600s",
    "maxDoublings": 16
  },
  "state": "RUNNING"
}

新创建的队列可能需要几分钟时间才能使用。

描述您的队列

您可以通过以下方式确认队列是否已成功创建:

  • 在 Google Cloud Console 中
  • 在终端或 Cloud Shell 中使用 gcloud CLI
  • 通过向 Cloud Tasks API 发送直接请求

控制台

  1. 在 Google Cloud 控制台中,依次前往 Cloud Tasks > 队列页面。

    前往“队列”页面

    绿色对勾标记 应表示队列正在运行。

  2. 如需了解详情,请点击队列的名称,然后点击配置标签页。

gcloud

使用 gcloud tasks queues describe 命令验证您的队列是否创建成功:

gcloud tasks queues describe QUEUE_ID \
    --location=LOCATION

替换以下内容:

  • QUEUE_ID:队列 ID(其缩写名称)
  • LOCATION:队列的位置

输出应类似如下所示:

name: projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID
rateLimits:
  maxBurstSize: 100
  maxConcurrentDispatches: 1000
  maxDispatchesPerSecond: 500.0
retryConfig:
  maxAttempts: 100
  maxBackoff: 3600s
  maxDoublings: 16
  minBackoff: 0.100s
state: RUNNING

REST API

如需检索队列,请使用 projects.locations.queues.get 方法。

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

  • PROJECT_ID:您的 Google Cloud 项目 ID。
  • LOCATION:队列部署到的区域,例如 us-central1
  • QUEUE_ID:队列的短 ID,例如 my-queue

如需发送您的请求,请展开以下选项之一:

如果成功,则响应正文包含一个 Queue 实例:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID",
  "rateLimits": {
    "maxDispatchesPerSecond": 500,
    "maxBurstSize": 100,
    "maxConcurrentDispatches": 1000
  },
  "retryConfig": {
    "maxAttempts": 100,
    "minBackoff": "0.100s",
    "maxBackoff": "3600s",
    "maxDoublings": 16
  },
  "state": "RUNNING"
}

排查创建队列时出现的问题

如果您没有看到预期的输出,可以尝试以下操作:

  • 等待至少一分钟时间,以便队列进行初始化。
  • 确保不存在有相同 ID 的队列。您可以使用 gcloud tasks queues list 命令查看项目中的队列:

    gcloud tasks queues list \
        --location=LOCATION

    如要搜索多个位置,您需要发出多个请求。

  • 检查您是否已达到队列配额

    1. 在 Google Cloud 控制台中,前往 Cloud Tasks API 的 API/Service Details 页面。

      前往“API/服务详情”页面

    2. 点击配额和系统限制标签页。

    3. 如需增加配额,请在相应配额对应的行中,依次点击省略号图标 > 修改配额

      如需了解详情,请参阅申请更高的配额值

  • 重新运行命令以创建队列,并确保每个步骤都已正确完成。

后续步骤