创建任务时,您可以使用 projects.locations.queues.tasks.create 方法指定失败任务的最大重试次数、设置重试尝试的时间限制,以及控制重试之间的时间间隔。任务成功执行后,系统会将其从队列中移除。在所有情况下,系统还会应用任务保留期限上限。
此任务级重试配置会替换相应任务的队列级重试配置。
在创建任务时配置重试
以下示例演示了在创建 HTTP 目标任务时,如何通过向 Cloud Tasks API 直接发送请求来设置重试参数。您可以在创建 App Engine 任务时使用相同的重试参数。如需了解更多参数详情,请参阅 Task 资源的 RetryConfig 设置。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID:必填。将创建任务的 Google Cloud 项目的项目 ID。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:可选。任务可以尝试的最大次数,包括第一次尝试。如需允许进行无限次重试,请将此值设置为-1。即使达到MAX_ATTEMPTS或将MAX_ATTEMPTS设置为-1,MAX_RETRY_DURATION仍适用。MAX_RETRY_DURATION:可选。 重试失败任务的最长时间(从首次尝试任务时算起)。该值必须是以“s”结尾的字符串,如5s。如需指定无限时长,请将此属性设置为0s。即使达到MAX_RETRY_DURATION或将其设置为0s,MAX_ATTEMPTS仍适用。MIN_INTERVAL:可选。重试尝试之间的最短等待时间。该值必须是以“s”结尾的字符串,如5s。MAX_INTERVAL:可选。重试尝试之间的最长等待时间。该值必须是以“s”结尾的字符串,如5s。MAX_DOUBLINGS:可选。在增加量变为常量之前,失败任务重试之间的时间间隔将加倍的最大次数。任务的重试间隔从MIN_INTERVAL开始,然后加倍MAX_DOUBLINGS次,然后线性增加,最后以MAX_INTERVAL为间隔重试,最多MAX_ATTEMPTS次。例如,如果
MIN_INTERVAL为10s、MAX_INTERVAL为300s且MAX_DOUBLINGS为3,则重试时间间隔将加倍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"
}