diff --git a/content/zh/docs/tasks/job/automated-tasks-with-cron-jobs.md b/content/zh/docs/tasks/job/automated-tasks-with-cron-jobs.md index ccf573b155..6de803ec91 100644 --- a/content/zh/docs/tasks/job/automated-tasks-with-cron-jobs.md +++ b/content/zh/docs/tasks/job/automated-tasks-with-cron-jobs.md @@ -2,7 +2,7 @@ title: 使用 CronJob 运行自动化任务 content_type: task weight: 10 -min-kubernetes-server-version: v1.8 +min-kubernetes-server-version: v1.21 --- +在Kubernetes v1.21 版本中,CronJob 被提升为通用版本。如果你使用的是旧版本的 Kubernetes,请参考你正在使用的 Kubernetes 版本的文档,这样你就能看到准确的信息。旧的 Kubernetes 版本不支持`batch/v1` CronJob API。 你可以利用 [CronJobs](/zh/docs/concepts/workloads/controllers/cron-jobs) 执行基于时间调度的任务。这些自动化任务和 Linux 或者 Unix 系统的 [Cron](https://en.wikipedia.org/wiki/Cron) 任务类似。 CronJobs 在创建周期性以及重复性的任务时很有帮助,例如执行备份操作或者发送邮件。CronJobs 也可以在特定时间调度单个任务,例如你想调度低活跃周期的任务。 @@ -283,25 +289,17 @@ If this field is not specified, the jobs have no deadline. 不满足这种最后期限的任务会被统计为失败任务。如果该域没有声明,那任务就没有最后期限。 -CronJob 控制器会统计错过了多少次调度。如果错过了100次以上的调度,CronJob 就不再调度了。 -当没有设置 `.spec.startingDeadlineSeconds` 时,CronJob 控制器统计从 -`status.lastScheduleTime` 到当前的调度错过次数。 -例如一个 CronJob 期望每分钟执行一次,`status.lastScheduleTime`是 `5:00am`, -但现在是 `7:00am`。那意味着 120 次调度被错过了,所以 CronJob 将不再被调度。 -如果设置了 `.spec.startingDeadlineSeconds` 域(非空),CronJob 控制器统计从 -`.spec.startingDeadlineSeconds` 到当前时间错过了多少次任务。 -例如设置了 `200`,它会统计过去 200 秒内错过了多少次调度。 -在那种情况下,如果过去 200 秒内错过了超过 100 次的调度,CronJob 就不再调度。 +如果`.spec.startingDeadlineSeconds`字段被设置(非空),CronJob 控制器会计算从预期创建 Job 到当前时间的时间差。 +如果时间差大于该限制,则跳过此次执行。 + +例如,如果将其设置为 `200`,则 Job 控制器允许在实际调度之后最多 200 秒内创建 Job。