操作场景
定时任务是按照指定时间周期运行的短任务。使用场景为在某个固定时间点,为所有运行中的节点做时间同步。
定时任务是基于时间的Job,就类似于Linux系统的crontab,在指定的时间周期运行指定的Job,即:
- 在给定时间点只运行一次。
- 在给定时间点周期性地运行。
CronJob的典型用法如下所示:
在给定的时间点调度Job运行。
创建周期性运行的Job,例如数据库备份、发送邮件。
前提条件
已创建资源,具体操作请参见创建节点。
通过控制台创建
步骤 1 登录CCE控制台。
步骤 2 单击集群名称进入集群,在左侧选择“工作负载”,在右上角单击“创建负载”。
步骤 3 配置工作负载的信息。
基本信息
- 负载类型:选择定时任务CronJob。工作负载类型的介绍请参见工作负载概述。
- 负载名称:填写工作负载的名称。
- 命名空间:选择工作负载的命名空间,默认为default。您可以单击后面的“创建命名空间”,命名空间的详细介绍请参见创建命名空间。
- 容器运行时:CCE集群默认使用普通运行时。
容器配置
-
容器信息
Pod中可以配置多个容器,您可以单击右侧“添加容器”为Pod配置多个容器。
- 基本信息:容器基本信息
- 生命周期:设置容器生命周期
- 环境变量:设置环境变量
- 容器日志:使用ICAgent采集容器日志
-
镜像访问凭证:用于访问镜像仓库的凭证,默认取值为default-secret,使用default-secret可访问SWR镜像仓库的镜像。default-secret详细说明请参见default-secret。
-
GPU显卡:默认为不限制。当集群中存在GPU节点时,工作负载实例可以调度到指定GPU显卡类型的节点上。
定时规则
-
并发策略:支持如下三种模式。
- Forbid:在前一个任务未完成时,不创建新任务。
- Allow:定时任务不断新建Job,会抢占集群资源。
- Replace:已到新任务创建时间点,但前一个任务还未完成,新的任务会取代前一个任务。
-
定时规则:指定新建定时任务在何时执行,YAML中的定时规则通过CRON表达式实现。
- 以固定周期执行定时任务,支持的周期单位为分钟、小时、日、月。例如,每30分钟执行一次任务,对应的CRON表达式为“/30 ”,执行时间将从单位范围内的0值开始计算,如 00:00:00 、 00:30:00 、 01:00:00 、 ... 。
- 以固定时间(按月)执行定时任务。例如,在每个月1日的0时0分执行任务,对应的CRON表达式为“0 0 1 /1 ”,执行时间为-01-01 00:00:00 、 -02-01 00:00:00 、 ... 。
- **以固定时间(按周)执行定时任务。例如,在每周一的0时0分执行任务,对应的CRON表达式为“0 0 1”,执行时间为 - -01 周一 00:00:00 、 - -08 周一 00:00:00 、 ... 。
- 自定义CRON表达式:关于CRON表达式的用法,可参考CRON官方文档。
说明
以固定时间(按月)执行定时任务时,在某月的天数不存在的情况下,任务将不会在该月执行。例如设置天数为30,而2月份没有30号,任务将跳过该月份,在3月30号继续执行。
由于CRON表达式的定义,这里的固定周期并非严格意义的周期。将从0开始按周期对其时间单位范围(例如单位为分钟时,则范围为0~59)进行划分,无法整除时最后一个周期会被重置。因此仅在周期能够平均划分其时间单位范围时,才能表示准确的周期。
举个例子,周期单位为小时,因为“/2、/3、/4、/6、/8和/12”可将24小时整除,所以可以表示准确的周期;而使用其他周期时,在新的一天开始时,最后一个周期将会被重置。比如CRON式为“* */12 * * ”时为准确的周期,每天的执行时间为00:00:00和 12:00:00 ;而CRON式为“ */13 * * *”时,每天的执行时间为00:00:00和 13:00:00 ,在第二天0时,虽然没到13个小时的周期还是会被刷新。
- 任务记录:可以设置保留执行成功或执行失败的任务个数,设置为0表示不保留。
步骤 4 单击右下角“创建工作负载”。