创建任务时,您可以使用
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:可选。任务的最大尝试次数,包括第一次尝试。如需允许无限次重试,请将此值设置为-1。MAX_RETRY_DURATION即使达到MAX_ATTEMPTS或将其设置为-1,仍然适用。MAX_RETRY_DURATION:可选。 重试失败任务的最长时间,从首次尝试任务时开始计算。该值必须是以“s”结尾的字符串,例如5s。如需指定 无限时长,请将此值设置为0s。MAX_ATTEMPTS仍然适用,即使达到MAX_RETRY_DURATION或将其设置为0s。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"
}