通过API或ECS控制台等执行云助手命令时,可基于Cron表达式设置云助手命令的定时执行计划。本文介绍Cron表达式的基本语法及其用法示例。
Cron表达式基本语法
Cron表达式是一种用于指定定时任务的时间表达式,常用来指定任务的执行时间、执行频率和执行间隔。它由6~7个字段组成,分别表示秒、分、时、日期、月份、星期、年份(可省略)。
Cron表达式的基本语法如下:
秒 分 时 日期 月份 星期 [年份]
[年份]:可省略。
关于单个字段:
单个字段可以是一个具体的值、一个范围、一个递增步长,或者具有逻辑意义的特殊字符。
单个字段若有多个取值时,使用半角逗号
,
隔开取值。每个字段最多支持一个前导零。即可以使用01、02等表示,但不能使用001、002等表示。
字段取值
下表为Cron表达式中七个字段的取值范围和支持的特殊字符。
字段 | 是否必需 | 取值范围 | 特殊字符 |
秒 | 是 | [0, 59] | * , - / |
分钟 | 是 | [0, 59] | * , - / |
小时 | 是 | [0, 23] | * , - / |
日期 | 是 | [1, 31] | * , - / ? L W |
月份 | 是 | [1, 12]或[JAN, DEC] | * , - / |
星期 | 是 | [1, 7]或[MON, SUN]。在云助手命令中,若您使用[1, 7]表达方式, 重要 Cron表达式的使用方法和含义可能会根据不同的系统、框架或工具有所差异。若您在其他地方使用Cron表达式,1可能表示星期日,7表示星期六,具体以实际情况为准。 | * , - / ? L # |
年 | 否 | [当前年份,2099] | * , - / |
特殊字符
Cron表达式中的每个字段都支持特殊字符,每个特殊字符都有其特殊含义。
特殊字符 | 含义 | 示例 |
| 匹配任意值。 | 在字段 |
| 列出枚举值。 | 在字段 |
| 指定范围。 | 在字段 |
| 指定数值的增量。 | 在字段 |
| 不指定值,仅用于日期和星期。 | 当字段 |
| 单词Last的首字母,表示最后一天,仅字段 重要 指定 |
|
| 除周末以外的有效工作日,在离指定日期的最近的有效工作日触发事件。 | 在字段 |
| 确定每个月的第几个星期几。 重要 仅字段 | 在字段 |
示例
场景 | 取值 | |
每天固定时间执行 | 每天上午10:15执行任务 |
|
每天中午12:00执行任务 |
| |
每天多个固定时间执行 | 每天上午10:00点、下午14:00以及下午16:00执行任务 |
|
每间隔一段时间执行 | 每天上午09:00到下午17:00时间段内每隔半小时执行任务 |
|
每天下午14:00到下午14:59时间段内每隔1分钟执行任务 |
| |
每天下午14:00到下午14:05时间段内每隔1分钟执行任务 |
| |
每天下午14:00到下午14:55时间段内每隔5分钟执行任务 |
| |
每天下午14:00到下午14:55、下午18:00到下午18:55时间段内每隔5分钟执行任务 |
| |
特定星期/日期执行 | 每个星期三中午12:00执行任务 |
|
每月15日上午10:15执行任务 |
| |
每月最后一日上午10:15执行任务 |
| |
每月最后一个星期六上午10:15执行任务 |
| |
每月第三个星期六上午10:15执行任务 |
| |
特定年份的特定日期执行 | 每年3月的每个星期三下午14:10和14:44执行任务 |
|
2022年每天上午10:15执行任务 |
| |
每年每天上午10:15执行任务 |
| |
2022年每天下午14:00到下午14:55、下午18:00到下午18:55时间段内每隔5分钟执行任务 |
| |
2022年至2023年每月第三个星期六上午10:15执行任务 |
| |
2022年至2025年每天上午09:00到下午17:30时间段内每隔半小时执行任务 |
| |
从2022年开始,每隔两年3月的每个星期三下午14:10和14:44执行任务 |
|