本页介绍了如何创建 Cloud Tasks 队列。当任务添加到队列中时,队列会分派这些任务,并确保服务(也称为工作器)可靠地处理这些任务。
请注意以下几点:
队列名称由三个部分组成:项目 ID、位置和队列 ID。 您必须拥有提供项目 ID 的Google Cloud 项目。
如果您使用的是 App Engine 目标任务,则还必须具有 App Engine 应用,该应用位于特定的区域,且此区域是队列和处理程序运行的位置。请注意添加应用时所处的区域。
使用 HTTP Target 任务不需要 App Engine 应用。在创建队列时,您可以选择 Google Cloud 位置。
创建队列
您可以通过以下方式创建队列:
- 在 Google Cloud 控制台中
- 在终端或 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 控制台中
- 在终端或 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/服务详细信息页面。
点击配额和系统限制标签页。
如需增加配额,请在相应配额所在的行中,依次点击省略号图标 > 修改配额。
如需了解详情,请参阅申请配额调整。
重新运行命令以创建队列,并确保每个步骤都正确完成。