一个 CronJob 对象就像 crontab (cron table) 文件中的一行。它用 Cron 格式进行编写,并周期性地在给定的调度时间执行 Job。
1. 创建应用时,选择“定时任务”。
2. 进入“应用发布”,创建yaml类型的部署配置以及环境,yaml配置参考:点击查看。
3. 在应用发布 -> 发布流程选择相应环境,新建发布单进行发布即可。
4. 发布成功,等待定时任务调度。
5. 查询Job历史OpenApi接口:ListJobHistories
, 查询单个Job的OpenApi接口:DescribeJobLog
。
Cron Job 在每次调度运行时间内 大概 会创建一个 Job 对象。之所以说 大概 ,是因为在特定的环境下可能会创建两个 Job,或者一个 Job 都没创建。k8s会尝试少发生这种情况,但却不能完全避免。因此,创建 Job 操作应该是 幂等 的。
Job 根据它所创建的 Pod 的并行度,负责重试创建 Pod,并就决定这一组 Pod 的成功或失败。Cron Job 不会去检查 Pod。
.spec.successfulJobsHistoryLimit
和 .spec.failedJobsHistoryLimit
这两个字段是可选的。它们指定了可以保留完成和失败 Job 数量的限制。默认没有限制,所有成功和失败的 Job 都会被保留。然而,当运行一个 Cron Job 时,很快就会堆积很多 Job,推荐设置这两个字段的值。设置限制值为 0,相关类型的 Job 完成后将不会被保留。
1)CronJob的配置中, .metadata.name
字段为系统指定,不允许用户自己指定。
2)发布单下方,没有实例:CronJob的实例是每一个运行着的任务,CronJob发布完成后只是创建好了CronJob,实例是要等到任务调度起来才会有,因此发布单中没有实例列表。
3)任务运行过程中,实例是可以远程登录的,在环境管理 -> 资源管理页面。
4)如果需要暂停任务,可以修改yaml中的 .spec.suspend
为true,再重新发布即可。
5)目前创建应用、创建环境、创建部署配置、发布均可通过控制台或OpenApi操作,查询任务历史以及任务执行日志仅支持OpenApi操作。