文档中心 > 商家经营工具-开发指引

聚石塔应用-定时任务(CronJob)

更新时间:2023/04/23 访问次数:4470

一、CronJob简介


一个 CronJob 对象就像 crontab (cron table) 文件中的一行。它用 Cron 格式进行编写,并周期性地在给定的调度时间执行 Job。

 

二、如何在聚石塔使用CronJob


1. 创建应用时,选择“定时任务”。


11.png


2. 进入“应用发布”,创建yaml类型的部署配置以及环境,yaml配置参考:点击查看

3. 在应用发布 -> 发布流程选择相应环境,新建发布单进行发布即可。

4. 发布成功,等待定时任务调度。

5. 查询Job历史OpenApi接口:ListJobHistories, 查询单个Job的OpenApi接口:DescribeJobLog


三、常见问题

1. k8s原生CronJob相关


1)CronJob限制

Cron Job 在每次调度运行时间内 大概 会创建一个 Job 对象。之所以说 大概 ,是因为在特定的环境下可能会创建两个 Job,或者一个 Job 都没创建。k8s会尝试少发生这种情况,但却不能完全避免。因此,创建 Job 操作应该是 幂等 的。

Job 根据它所创建的 Pod 的并行度,负责重试创建 Pod,并就决定这一组 Pod 的成功或失败。Cron Job 不会去检查 Pod。


2)Job历史限制

.spec.successfulJobsHistoryLimit.spec.failedJobsHistoryLimit 这两个字段是可选的。它们指定了可以保留完成和失败 Job 数量的限制。默认没有限制,所有成功和失败的 Job 都会被保留。然而,当运行一个 Cron Job 时,很快就会堆积很多 Job,推荐设置这两个字段的值。设置限制值为 0,相关类型的 Job 完成后将不会被保留。


2. 聚石塔CronJob相关


1)CronJob的配置中, .metadata.name字段为系统指定,不允许用户自己指定。

2)发布单下方,没有实例:CronJob的实例是每一个运行着的任务,CronJob发布完成后只是创建好了CronJob,实例是要等到任务调度起来才会有,因此发布单中没有实例列表。

3)任务运行过程中,实例是可以远程登录的,在环境管理 -> 资源管理页面。

4)如果需要暂停任务,可以修改yaml中的 .spec.suspend 为true,再重新发布即可。

5)目前创建应用、创建环境、创建部署配置、发布均可通过控制台或OpenApi操作,查询任务历史以及任务执行日志仅支持OpenApi操作。

 

FAQ

关于此文档暂时还没有FAQ
返回
顶部