为任务设置重试参数

创建任务时,您可以使用 projects.locations.queues.tasks.create 方法指定重试 失败任务的最大次数、设置重试尝试的时间限制,以及控制 尝试之间的间隔。任务成功执行后,系统会将其从队列中移除。在 所有情况下,任务保留时间上限也 适用。

此任务级重试配置会替换任务的 队列级重试配置

在创建任务时配置重试

以下示例展示了如何通过向 Cloud Tasks API 发送直接请求来设置创建 HTTP 目标任务时的重试参数。您可以使用相同的重试参数,在 创建 App Engine 任务时。如需了解 更多参数详细信息,请参阅 RetryConfig 设置,了解 Task 资源。

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

  • PROJECT_ID:必填。要在其中创建任务的项目的 项目 ID Google Cloud 。
  • REGION:必填。队列部署到的区域,例如 us-central1
  • QUEUE_ID:必填。要将任务添加到的队列的 ID 。
  • URL:必填。请求将发送到的完全限定网址。 此字符串必须以 http://https:// 开头,例如:https://www.example.com.
  • SERVICE_ACCOUNT_EMAIL: 可选。用于生成授权令牌的服务帐号电子邮件地址,该令牌包含在 发送给目标的请求中,以便在执行任务时使用。服务帐号必须与队列位于同一项目中。调用方必须对服务帐号具有 iam.serviceAccounts.actAs 权限。

    如需生成 OAuth2 访问令牌而不是 OpenID Connect 令牌,请将 oidcToken 字段替换为 oauthToken 以指定服务帐号电子邮件地址。

  • MAX_ATTEMPTS:可选。任务的最大尝试次数,包括第一次尝试。如需允许无限次重试,请将此值设置为 -1MAX_RETRY_DURATION 即使达到 MAX_ATTEMPTS 或将其设置为 -1,仍然适用。
  • MAX_RETRY_DURATION:可选。 重试失败任务的最长时间,从首次尝试任务时开始计算。该值必须是以“s”结尾的字符串,例如 5s。如需指定 无限时长,请将此值设置为 0sMAX_ATTEMPTS 仍然适用,即使达到 MAX_RETRY_DURATION 或将其设置为 0s
  • MIN_INTERVAL:可选。重试尝试之间等待的最短 时间。该值必须是以“s”结尾的字符串,例如 5s
  • MAX_INTERVAL:可选。重试尝试之间等待的最长时间。该值必须是以“s”结尾的字符串,例如 5s
  • MAX_DOUBLINGS:可选。在失败任务重试之间的间隔增加到恒定值之前,间隔将翻倍的最大次数。任务的重试间隔从 MIN_INTERVAL 开始,然后翻倍 MAX_DOUBLINGS 次,然后线性增加,最后以 MAX_INTERVAL 的间隔重试,最多 MAX_ATTEMPTS 次。

    例如,如果 MIN_INTERVAL10sMAX_INTERVAL300sMAX_DOUBLINGS3,则重试间隔将翻倍 3 次,线性增加 2^3 * 10 秒,然后以 MAX_INTERVAL 的间隔重试,直到任务尝试了 MAX_ATTEMPTS 次:10 秒、20 秒、40 秒、80 秒、160 秒、240 秒、300 秒、300 秒,依此类推。

  • SCHEDULE_TIME:可选。 计划尝试任务的时间,采用 RFC 3339 格式,例如, 2026-10-02T15:01:23Z。如果未设置时间或时间已过,Cloud Tasks 会将其设置为当前时间。

请求 JSON 正文:

{
  "task": {
    "httpRequest": {
      "url": "URL",
      "httpMethod": "POST",
      "oidcToken": {
        "serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL"
      }
    },
    "retryConfig": {
      "maxAttempts": MAX_ATTEMPTS,
      "maxRetryDuration": "MAX_RETRY_DURATION",
      "minBackoff": "MIN_INTERVAL",
      "maxBackoff": "MAX_INTERVAL",
      "maxDoublings": MAX_DOUBLINGS
    },
    "scheduleTime": "SCHEDULE_TIME"
  }
}

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

如果成功,响应正文将包含新创建的 Task 资源实例。

{
  "name": "projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID",
  "httpRequest": {
    "url": "URL",
    "httpMethod": "POST",
    "headers": {
      "User-Agent": "Google-Cloud-Tasks"
    },
    "oidcToken": {
      "serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL",
      "audience": "URL"
    }
  },
  "retryConfig": {
    "maxAttempts": MAX_ATTEMPTS,
    "maxRetryDuration": "MAX_RETRY_DURATION",
    "minBackoff": "MIN_INTERVAL",
    "maxBackoff": "MAX_INTERVAL",
    "maxDoublings": MAX_DOUBLINGS
  },
  "scheduleTime": "SCHEDULE_TIME",
  "createTime": "2026-04-30T19:11:50Z",
  "dispatchDeadline": "600s",
  "view": "BASIC"
}

后续步骤