管理队列和任务

您可以通过以下方式管理队列和任务:

  • 在 Google Cloud 控制台中
  • 在终端或 Cloud Shell 中使用 Google Cloud CLI
  • 通过向 Cloud Tasks API 发送请求

从队列中删除任务

如果任务已安排或已调度,您可以将其删除。例如,您可能需要删除无论重试多少次都无法成功完成的任务。如果任务已成功完成,或者在持续失败后重试次数已用尽,您将无法删除该任务。如果达到任务保留期限上限,系统会自动删除任务。

控制台

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

    前往“队列”

  2. 点击要删除的任务所属队列的名称。

  3. 选中要删除的任务对应的复选框。

  4. 依次点击 删除任务

  5. 在弹出的提示中,点击删除

gcloud

使用 gcloud tasks delete 命令删除任务:

gcloud tasks delete TASK_NAME \
    --queue=QUEUE_ID \
    --location=LOCATION

替换以下内容:

  • TASK_NAME:您要删除的任务的名称
  • QUEUE_ID:任务所属的队列的名称
  • LOCATION:部署队列的区域,例如 us-central1

REST

如需删除任务,请使用 projects.locations.queues.tasks.delete 方法。

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

  • QUEUE_ID:任务所属队列的名称
  • TASK_NAME:要删除的任务的名称
  • PROJECT_ID:您的 Google Cloud项目 ID
  • LOCATION:队列所在的区域,例如 us-central1

请求正文必须为空。

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

如果成功,则响应正文为空。

从队列中批量删除任务

您可以使用 projects.locations.queues.tasks.batchDelete 方法删除队列中的一批任务,以删除任务名称列表。

请注意以下几点:

  • 所有任务都必须从同一队列中删除。

  • 单个批次中可删除的任务数量有限制。如需了解详情,请参阅配额和限制

  • 将单个操作汇总到单个请求中的批量请求不是原子操作,因为批量请求中包含的一些操作可能会失败,而其他操作可能会成功。

  • 只有在任务已安排或已调度的情况下,您才能删除该任务。如果任务已成功完成,或者在持续失败后重试次数已用尽,则无法删除该任务。如果达到任务保留期限上限,系统会自动删除相应任务。

  • 您还可以批量创建任务。如需了解详情,请参阅创建一批任务

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

  • TASK_NAME:要删除的任务的名称,格式如下:projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID
  • PROJECT_ID:您的 Google Cloud项目 ID
  • REGION:队列所在的区域,例如 us-central1
  • QUEUE_ID:任务所属队列的名称

请求正文包含任务名称列表。

请求 JSON 正文:

{
  "names": [
    "TASK_NAME"
  ]
}

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

如果成功,响应正文会包含一个 Operation 实例。

{
  "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.tasks.v2beta3.BatchDeleteTasksMetadata"
  },
  "done": false
}

完全清除队列中的所有任务

您可以完全清除队列中的所有任务,从而删除所有任务。在调用清除功能之前创建的所有任务都会被永久删除。不过,完全清除操作最多可能需要一分钟才会生效,并且任务可能会在完全清除生效之前分派。

控制台

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

    前往“队列”

  2. 点击要删除的任务所属队列的名称。

  3. 点击 完全清除队列

  4. 在提示中,点击完全清除

gcloud

使用 gcloud tasks queues purge 命令清空队列:

gcloud tasks queues purge QUEUE_ID \
    --location=LOCATION

替换以下内容:

  • QUEUE_ID:要清除的队列的名称
  • LOCATION:部署队列的区域,例如 us-central1

REST

如需清空队列,请使用 projects.locations.queues.purge 方法。

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

  • QUEUE_ID:您要清空的队列的名称
  • PROJECT_ID:您的 Google Cloud项目 ID
  • LOCATION:部署队列的区域,例如 us-central1

请求正文必须为空。

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

如果成功,则响应正文包含一个 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",
  "purgeTime": "2025-03-28T13:06:30.110255Z"
}

暂停或恢复队列

您可以暂停或恢复队列。暂停队列意味着停止执行和交付任务。您仍然可以创建任务并将其推送到队列或附加到队列,但这些任务不会得到处理。队列恢复后,所有积压的任务都会按照其添加到队列积压中的顺序进行处理。

控制台

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

    前往“队列”

  2. 选中要暂停的队列对应的复选框。

  3. 点击 暂停队列

  4. 在弹出的提示中,点击暂停

  5. 如需继续执行队列,请点击 继续执行队列

gcloud

  1. 使用 gcloud tasks queues pause 命令暂停队列:

    gcloud tasks queues pause QUEUE_ID \