默认情况下,如果 Cloud Scheduler 作业未收到其处理程序的确认,则该作业会被视为失败,并将根据您配置的指数退避算法进行重试。您可以在创建或更新 Cloud Scheduler 作业时通过以下方式确定此重试行为:
发出直接 API 请求并配置
Job资源的RetryConfig设置
重试设置
下表介绍了您可以配置的重试设置。
重试次数上限
系统将使用 maxDoublings 描述的指数退避算法过程尝试运行作业的次数。
| 说明 | 如果 如果 不允许使用大于 5 的值和负值。 |
| 默认 | 默认值为 0。 |
| 控制台标签 | 重试次数上限 |
| CLI 标志 | --max-retry-attempts |
| API 字段 | retryCount |
重试时长上限
重试失败作业的时间限制,从首次尝试执行的时间开始计算。如果同时指定了 retryCount,则系统会重试作业,直到同时达到这两个限制为止。
| 说明 | 时长以秒为单位,最多包含九个小数位,并以“s”结尾,例如“3.5s”。 时长为 0 表示重试时长不受限制。但是,如果 |
| 默认 | 默认值为 0 秒。 |
| 控制台标签 | 重试时长上限 |
| CLI 标志 | --max-retry-duration |
| API 字段 | maxRetryDuration |
退避时长下限
在作业失败后等待重试的时长下限。
| 说明 | 时长以秒为单位,最多包含九个小数位,并以“s”结尾,例如“3.5s”。 |
| 默认 | 默认值为 5 秒。 |
| 控制台标签 | 退避时长下限 |
| CLI 标志 | --min-backoff |
| API 字段 | minBackoffDuration |
退避时长上限
在作业失败后等待重试的时长上限。
| 说明 | 时长以秒为单位,最多包含九个小数位,并以“s”结尾,例如“3.5s”。 |
| 默认 | 默认值为 3600 秒(1 小时)。 |
| 控制台标签 | 退避时长上限 |
| CLI 标志 | --max-backoff |
| API 字段 | maxBackoffDuration |
加倍次数上限
在增加量变为常量之前,失败作业重试之间的时间间隔将加倍的最大次数。
| 说明 | 两次重试的间隔时间将翻倍 maxDoublings 次。
作业的重试间隔从 如果
因此,请求将在 10 秒、20 秒、40 秒、80 秒、160 秒后重试。 如果
因此,请求将在 10 秒、20 秒、40 秒、80 秒、120 秒后重试。 |
| 默认 | 默认值为 5。 |
| 控制台标签 | 加倍次数上限 |
| CLI 标志 | --max-doublings |
| API 字段 | maxDoublings |
重试示例
以下示例演示了 Cloud Scheduler 作业未成功完成时的重试行为。
- 如果
retryCount和maxRetryDuration均未设置 这两项设置均默认为 0,作业根本不会重试。
请注意,Cloud Scheduler 将尝试在下一个预定执行时间运行作业。
- 如果同时设置了
retryCount和maxRetryDuration 作业将至少重试
retryCount次,直到达到maxRetryDuration。请注意,作业重试次数可能会超过
retryCount。- 如果设置了
retryCount,但未设置maxRetryDuration maxRetryDuration设置默认为 0,作业将重试retryCount次。- 如果未设置
retryCount,但设置了maxRetryDuration 作业将重试任意次数(最多 5 次),或直到达到
maxRetryDuration。