Cron表达式是一个强大的工具,当我们需要定时执行任务时,可以使用cron表达式来指定任务的执行时间。Cron表达式是一个字符串,表示一组时间,它由6或7个字段组成,主要用于设置定时任务的执行频率。
1. cron表达式的语法规则:
字段 | 允许的值 | 允许的特殊字符 |
---|---|---|
秒 | 0-59 | , - * / |
分 | 0-59 | , - * / |
小时 | 0-23 | , - * / |
日期 | 1-31 | , - * / L W |
月份 | 1-12 | , - * / |
星期(可选) | 1-7 | , - * / L # |
年份(可选) | empty,1970-2099 | , - * / |
2. 特殊字符的含义:
*
:代表任意值,可以在所有字段中使用。?
:代表非特定值,可以在日期和星期几字段中使用。例如,* * * ? * MON-FRI
表示每个工作日执行任务。-
:代表区间值,可以在所有字段中使用。例如,10-15 * * * * ?
表示在每小时的10分到15分之间执行任务。,
:代表枚举值,可以在所有字段中使用。例如,0 0 1,15 * * ?
表示在每个月的1号和15号的1点执行任务。/
:代表间隔值,可以在所有字段中使用。例如,0/5 * * * * ?
表示每隔5秒执行一次任务。L
:代表最后一个,可以在日期和星期几字段中使用。例如,0 0 0 L * ?
表示在每个月的最后一天凌晨执行任务。W
:表示最近一周的某一天。例如,15W表示“离15号最近的那个星期的星期三”。
3. 实际应用:
cron表达式广泛应用于各种定时任务中,例如:
- 每天凌晨执行:
0 0 0 * * ?
- 每月的1号1点执行任务:
0 0 1 1 * ?
- 每周五下午4点执行任务:
0 0 16 ? * FRI
- 每5分钟执行一次任务:
0 */5 * * * ?
- 每小时的开始的每5分钟执行一次任务:
0 0/5 * * * ?
- 每小时的第0和第30分钟执行一次任务:
0 0-59/15 * * * ?
- 每周的每天的上午11:30到下午12:30执行一次任务:
0 15-30/30 * * * ?
- 每个月的第一天的下午1点执行一次任务:
0 0 13 1 ?
- 工作日的上午10点到11点之间,每隔5分钟执行一次任务:
0 0/5 10-11 ? * MON-FRI
- 每周的周六和周日的下午12点到晚上11点30分执行一次任务:
0 12,18-23/3 * * * ?