本页介绍了如何创建 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 发送直接请求
控制台
gcloud
使用 gcloud tasks queues create
命令创建队列:
gcloud tasks queues create QUEUE_ID \ --location=LOCATION
替换以下内容:
QUEUE_ID
:您为队列分配的标识符,例如my-queue
。LOCATION
:队列将运行的受支持区域,例如asia-south1
。如果贵组织限制了资源位置,而您想在
us-central1
或us-central2
中创建队列,则组织政策必须允许同时在us-central1
和us-central2
中创建队列(即使您只需要在其中一个区域中创建队列)。
您可以使用 gcloud CLI 命令的其他标志来配置速率限制、重试选项、队列类型等。
REST API
如需创建队列,请使用 projects.locations.queues.create
方法。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID
:您的 Google Cloud 项目 ID。LOCATION
:队列将运行的受支持区域,例如asia-south1
。如果贵组织限制了资源位置,而您想在
us-central1
或us-central2
中创建队列,则组织政策必须允许同时在us-central1
和us-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 发送直接请求
控制台
在 Google Cloud 控制台中,依次前往 Cloud Tasks > 队列页面。
绿色对勾标记
应表示队列正在运行。如需了解详情,请点击队列的名称,然后点击配置标签页。
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
如要搜索多个位置,您需要发出多个请求。
检查您是否已达到队列配额:
在 Google Cloud 控制台中,前往 Cloud Tasks API 的 API/Service Details 页面。
点击配额和系统限制标签页。
如需增加配额,请在相应配额对应的行中,依次点击省略号图标 > 修改配额。
如需了解详情,请参阅申请更高的配额值。
重新运行命令以创建队列,并确保每个步骤都已正确完成。