Cron表达式

1、cron表达式格式

{秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)}

2、格式详解

字段
有效范围
特殊字符

0~59
 ,  -  *  /
分钟
0~59
 ,  -  *  /
小时
0~23
 ,  -  *  /
日期
0~31
 ,  -  *  /  ?  L  W  C

0~11
 ,  -  *  /
星期
1~7 或 SUN,MON,TUE,WED,THU,FRI,SAT
 ,  -  *  /  ?  L  #  C
年份
1970~2099
 ,  -  *  /
其中每个元素可以是一个值,一个连续区间,一个间隔时间,一个列表,通配符。

由于"日期"和"星期"这两个元素互斥的,必须要对其中一个设置"?"。

通配符含义
,用来列出枚举值值
例如:在分钟字段里用“5,20”意味着在5和20分每分钟触发一次
-指定一个值的范围
*代表所有可能的值
/用来指定数值的增量
例如:在分钟字段里用“0/15”表示从第0分钟开始,每15分钟
?表示不指定值
L用在日期表示一个月中的最后一天
例如:6L,表示某月的倒数第6天
用在星期表示一个月中的最后一个星期x
例如:FRIL,表示某月的最一个星期五
W

指定离给定日期最近的工作日(周一到周五)
例如:在日期字段用“15W”指这个月最接近第15天的工作日,
如果这个月第15天是周六,那么触发器将会在这个月第14天即周五触发
如果这个月第15天是周日,那么触发器将会在这个月第16天即周一触发
C指和日历关联后计算过的值
例如:在日期 字段用“5C”指在这个月第5天
            在星期字段用“1C”指在周日
#表示该月第几个星期x
例如:4#2,表示某月的第二个星期三
           6#3,表示某月的第三个星期五

3、常用例子

"0 0 12 * * ?" 每天12点触发

"0 0 12,20 * * ?" 每天12点和20点触发

"0 0/5 * * * ?" 每隔5分钟触发一次

"0 0 10 * * ? 2015" 2015年的每天10点触发

"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发

"0 15 10 15 * ?" 每月15日上午10:15触发

"0 15 10 L * ?" 每月最后一日的上午10:15触发

4、在Spring中使用Cron表达式

在Spring中,我们可以使用Cron来做定时器,执行定时任务,使用注解@Scheduled和@EnableScheduling。

在你要定时执行的事务上添加注解和Cron表达式,如:

public class MyTask {
     @Scheduled(cron = "0 0 10 * * ?") // 每天10点执行一次
     public void work() {
         // task execution logic
     }
 }

在@Configuration的类上添加@EnableScheduling注解

 @Configuration
 @EnableScheduling
 public class AppConfig {
     // various @Bean definitions
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值