cron表达式

cron表达式是定时任务调度最基础的知识 , 因此需要好好理解一下。

 

表达式的组成:

秒 分 时 日 月 星期 年 

字段允许值允许的特殊字符
秒(Seconds)0~59的整数, - * /    四个字符
分(Minutes0~59的整数, - * /    四个字符
小时(Hours0~23的整数, - * /    四个字符
日期(DayofMonth1~31的整数(但是你需要考虑你月的天数),- * ? / L W C     八个字符
月份(Month1~12的整数或者 JAN-DEC, - * /    四个字符
星期(DayofWeek1~7的整数或者 SUN-SAT (1=SUN), - * ? / L C #     八个字符
年(可选,留空)(Year1970~2099, - * /    四个字符

 

 

 

 

 

 

 

 

 

 

这个顺序是固定不变的

每个组成部分(个人习惯上称为  时间单元)都有可以使用的特殊符号

例如 :

*  放在每个时间单元上表示完全匹配每一个,例如每一秒每一年,每一星期 每一小时等等;

- 放在每个时间单元上表示一个闭区间 秒 1-10 :表示第一秒到第十秒 每一秒都匹配, 年2010-2019:10年到19年的每一年都匹配;

/放在每个时间单元上表示间隔 秒 0/10:表示0秒开始第一次然后每间隔10秒匹配/触发一次,分钟10/20:10分钟开始第一次,每间隔20分钟匹配/触发一次;

,放在时间单元上, 表示枚举每个时间单元:秒 0,10,20 表示 0s 10s 和20s匹配/触发

?这个符号就有点意思了, 刚看到表达式的时候, 感觉 ?这个东西是个什么鬼 ?好长时间也没有太理解, ?这个符号的意思表示该时间单位不做参考 防止冲突来使用的,冲突 ?是的, 时间的表述可以通过多个维度进行,例如  2019年1月17日是 星期四, 如果用星期表示今天 就可以用每个星期四, 用日期表示今天就可以用 17日 , 因此如果用星期表示了今天, 那么 日这个时间单位就可以用? 符号设置为不参考该时间单位。下面举个栗子:

2019年每个星期一的凌晨

0 0 0 ? * 2 2019

 

那么 在日这个时间单位上设置? 不做参考, 星期的时间单位上设置2 (表示星期一)参考起作用了。

最近5次运行时间:
  • 2019/1/21 0:00:00
  • 2019/1/28 0:00:00
  • 2019/2/4 0:00:00
  • 2019/2/11 0:00:00
  • 2019/2/18 0:00:00

在比如 每个月的最后一天的凌晨

0 0 0 L * ? *

 

最近5次运行时间:
  • 2019/1/31 0:00:00
  • 2019/2/28 0:00:00
  • 2019/3/31 0:00:00
  • 2019/4/30 0:00:00
  • 2019/5/31 0:00:00

 

就说这些吧 , 我自己的理解了,若能帮上你,实在是荣幸之至。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值