简介
Cron 表达式是一种用于指定定时任务执行时间的格式化字符串。在软件开发和系统管理中,经常需要执行周期性任务,例如备份数据库、定时清理日志文件等。Cron 表达式就是为了满足这种需求而设计的。本教程将介绍 Cron 表达式的基本语法和常见用法。
Cron 表达式的基本结构
Cron 表达式由 6 个字段组成,每个字段代表一段时间。这些字段从左到右依次表示:
- 秒(Second):0 到 59
- 分钟(Minute):0 到 59
- 小时(Hour):0 到 23
- 日期(Day of month):1 到 31
- 月份(Month):1 到 12 或者 JAN 到 DEC
- 星期(Day of week):0 到 6 或者 SUN 到 SAT(0 和 7 都代表星期天)
每个字段可以是一个值、一个范围、一个列表或者一个通配符。
基本语法
一个完整的 Cron 表达式包含 6 个字段,通过空格分隔。例如:
* * * * * *
这个表达式代表每秒钟都执行任务。下面是一些常见的例子:
0 0 * * * *:每天的午夜(00:00:00)执行任务
0 0 6 * * *:每天的早上 6 点执行任务
0 0 12 * * MON-FRI:每周一至周五的中午 12 点执行任务
0 0 */2 * * *:每两个小时执行一次任务
0 30 9 * * MON-FRI:每周一至周五的早上 9 点 30 分执行任务
表达式 | 说明 |
---|---|
0 0 2 * * ? | 每天凌晨2点 |
*/5 * * * * ? | 每隔5秒执行一次 |
0 */5 * * * ? | 每隔5分执行一次 |
0 26,29,33 * * * ? | 在26分、29分、33分执行一次 |
0 30 0 * * ? | 每天半夜12点30分执行一次 |
0 15 10 ? * * | 每天上午10:15执行一次 |
0 0 0/1 * * ? | 每个整点执行一次 |
0 * 14 * * ? | 每天14点到14:59分,每1分钟执行一次 |
0 0-5 14 * * ? | 每天14点到14:05分,每1分钟执行一次 |
0 0/5 14 * * ? | 每天14点到14:55分,每5分钟执行一次 |
0 0/5 14,18 * * ? | 每天14点到14:55分,和18点到18点55分,每5分钟执行一次 |
0 0 18,22 * * ? | 每天18点、22点执行一次 |
0 0 7-23 * * ? | 每天7点到23点,每整点执行一次 |
0 0 10,14,16 * * ? | 每天上午10点,下午2点,4点 |
0 0/30 9-17 * * ? | 朝九晚五工作时间内每半小时 |
0 0 12 ? * WED | 表示每个星期三中午12点 |
0 15 10 * * ? 2024 | 2024年的每天上午10:15触发 |
0 15 10 15 * ? | 每月15日上午10:15触发 |
0 15 10 ? * MON-FRI | 周一至周五的上午10:15触发 |
0 15 10 L * ? | 每月最后一日的上午10:15触发 |
特殊字符
除了数字和通配符之外,Cron 表达式还支持一些特殊字符:
*(星号)
:代表所有可能的值。例如,* 在分钟字段表示每分钟都执行任务。/(斜线)
:用于指定增量值。例如,*/10 在分钟字段表示每隔 10 分钟执行一次任务。,(逗号)
:用于指定多个值。例如,1,15,30 在分钟字段表示在 1 分、15 分和 30 分时执行任务。-(连字符)
:用于指定范围。例如,1-5 在分钟字段表示从第 1 分钟到第 5 分钟执行任务。?(问号)
:在日期字段或者星期字段中,代表不指定具体值。例如,* * ? * * 在日期字段中表示每天都执行任务,星期字段无所谓。
总结
Cron 表达式是一种强大的定时任务调度工具,通过简单的语法就能实现复杂的调度逻辑。掌握了 Cron 表达式的基本语法和特殊字符,你就可以轻松地安排各种定时任务,提高系统的自动化程度,减轻人工操作的负担。
评论区