cron时间表达式
Cron时间表达式是一种用于指定定时任务执行时间的格式化字符串。它由6个字段组成,分别表示分钟、小时、日、月、周几和年份。每个字段可以使用通配符、数字、逗号、连字符和斜杠等符号来指定具体的值或范围。
下面是一个典型的Cron时间表达式:
* * * * * *
其中,每个星号代表一个字段,表示“每分钟、每小时、每天、每月、每周、每年”都执行一次任务。如果要指定具体的时间,可以使用数字或其他符号来替换星号。例如:
0 0 12 * * *
表示每天中午12点执行任务。具体解释如下:
第一个字段:0,表示在每小时的0分执行任务;
第二个字段:0,表示在每天的0点执行任务;
第三个字段:12,表示在每月的12日执行任务;
第四个字段:*,表示在每个月执行任务;
第五个字段:*,表示在每周执行任务;
第六个字段:*,表示在每年执行任务。
除了数字和星号,还可以使用其他符号来指定具体的时间,例如:
逗号(,):表示多个值,例如“1,3,5”表示1、3、5三个值;
连字符(-):表示范围,例如“1-5”表示1到5这个范围内的所有值;
斜杠(/):表示步长,例如“*/5”表示每隔5个单位执行一次任务。
因此,下面的Cron时间表达式:
0 0 12 1-5 */2 *
表示在每个月的1到5日中午12点,以及每隔两周的中午12点执行任务。
除了上述常用的符号外,Cron时间表达式还支持一些特殊的符号,例如:
@yearly:等同于“0 0 1 1 * *”,表示每年的1月1日0点0分执行任务;
@monthly:等同于“0 0 1 * * *”,表示每月的1日0点0分执行任务;
@weekly:等同于“0 0 * * 0 *”,表示每周日的0点0分执行任务;
@daily或@midnight:等同于“0 0 * * * *”,表示每天的0点0分执行任务;
@hourly:等同于“0 * * * * *”,表示每小时的0分执行任务。
这些特殊符号可以方便地指定常用的定时任务执行时间,避免手动编写复杂的Cron时间表达式。
需要注意的是,Cron时间表达式的精度只能到分钟级别,无法精确到秒。如果需要精确到秒级别的定时任务,可以考虑使用其他定时任务框架,例如Quartz等。