管理队列和任务

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

  • 在 Google Cloud Console 中
  • 在终端或 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

请求正文必须为空。

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

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

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

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

控制台

  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. 如需继续执行队列,请点击 Continue queue(继续执行队列)。

gcloud

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

    gcloud tasks queues pause QUEUE_ID \
        --location=LOCATION

    替换以下内容:

    • QUEUE_ID:您要暂停的队列的名称
    • LOCATION:队列的部署区域,例如 us-central1
  2. 使用 gcloud tasks queues resume 命令恢复队列:

    gcloud tasks queues resume QUEUE_ID \
        --location=LOCATION

REST

  1. 如需暂停队列,请使用 projects.locations.queues.pause 方法。

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

    • 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": "PAUSED"
    }
    

  2. 如需继续执行队列,请使用 projects.locations.queues.resume 方法。

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

    • 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"
    }
    

删除队列

您可以删除队列。队列中的所有任务也会一并删除。如果您删除队列,则必须等待 3 天后,才能使用同一名称重新创建该队列。此等待时间可防止在删除时正在运行或等待运行的任务中发生意外行为。同时可避免删除或重新创建周期中的内部进程失败。

控制台

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

    前往“队列”

  2. 选中要删除的队列对应的复选框。

  3. 点击 删除队列

  4. 在提示中输入队列名称,然后点击确认

gcloud

使用 gcloud tasks queues delete 命令删除队列:

gcloud tasks queues delete QUEUE_ID \
    --location=LOCATION

替换以下内容:

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

REST

如需删除队列,请使用 projects.locations.queues.delete 方法。

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

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

请求正文必须为空。

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

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