Cron 表达式
Cron 表达式是一种用于配置定时任务的时间表达式。它由六个字段组成,分别表示分钟、小时、日期、月份、星期和年份。
Cron 表达式的格式如下:
* * * * * *
| | | | | |
| | | | | +-- Year (optional)
| | | | +---- Day of the Week (0-7, Sunday is 0 or 7)
| | | +------ Month (1-12)
| | +-------- Day of the Month (1-31)
| +---------- Hour (0-23)
+------------ Minute (0-59)
每个字段可以包含以下取值:
- 秒(可选):0-59
- 分钟:0-59
- 小时:0-23
- 日期:1-31
- 月份:1-12
- 星期:0-7(其中0和7都表示周日)
- 年份(可选):留空或指定的年份
在字段中,还可以使用以下特殊字符和符号:
- “*”:匹配该字段的所有可能值。
- “/”:指定增量值。例如,“*/5” 表示每隔 5 单位执行一次。
- “-”:指定范围值。例如,“1-3” 表示 1、2 和 3。
- “,”:指定多个值。例如,“1,3,5” 表示 1、3 和 5。
下面是一些示例:
- “0 0 * * * *”:每天的午夜触发任务。
- “0 12 * * MON-FRI”:每个工作日的中午 12 点触发任务。
- “0 */2 * * *”:每隔两个小时触发任务。
- “0 0 1 1 * *”:每年的 1 月 1 日午夜触发任务。
请注意,Cron 表达式是在服务器的本地时间上运行的。因此,确保在设置定时任务时正确理解和转换为适合您所在时区的时间。
一些常用示例
常用示例:
- “0 0 * * * *”:每天的午夜触发任务。
- “0 12 * * * *”:每天的中午 12 点触发任务。
- “0 0 */2 * * *”:每隔两天的午夜触发任务。
- “0 0 8-18 * * *”:每天上午 8 点到下午 6 点之间每隔一小时触发任务。
- “0 0 9,12,15 * * *”:每天上午 9 点、中午 12 点和下午 3 点触发任务。
- “0 0/30 9-17 * * MON-FRI”:每个工作日上午 9 点到下午 5 点之间每隔 30 分钟触发任务。
- “0 0 10,14 * JAN,FEB,MAR *”: 一月、二月和三月的每个周一和周二的上午 10 点和下午 2 点触发任务。
- “0 0 0 25 12 ?”:每年的圣诞节午夜触发任务。
每天的早上 8 点 30 分
要每天的早上 8 点 30 分执行任务,您可以使用以下的 Cron 表达式:
30 8 * * *
这个表达式的含义是:在每天的第 8 小时 30 分的时候触发任务。其中,“30”表示分钟字段,而“8”表示小时字段。星号 (*) 表示该字段可以匹配任意值。
每天的早上 8 点和下午 2 点分别执行
要在每天的早上 8 点和下午 2 点分别执行任务,
您可以使用两个 Cron 表达式,如下所示:
写法一
0 8 * * *
0 14 * * *
第一个表达式表示在每天的第 8 小时触发任务,第二个表达式表示在每天的第 14 小时触发任务。其中,“0”表示分钟字段,而“8”和“14”分别表示小时字段。星号 (*) 表示该字段可以匹配任意值。
写法二
可以将两个时间合并为一个 Cron 表达式,如下所示:
0 8,14 * * *
这个表达式的含义是,在每天的第 8 小时和第 14 小时的时候触发任务。其中,“0”表示分钟字段,而“8,14”表示小时字段,表示早上 8 点和下午 2 点。星号 (*) 表示该字段可以匹配任意值。
请注意,这个 Cron 表达式是基于服务器的本地时间运行的。如果您的服务器位于不同的时区,请根据需要进行调整。