定时任务之Cron表达式

cron表达式

在这里插入图片描述
Spring只支持到DayOfWeek的前六个部分

这六个部分以空格来区分

星期是从星期天开始

通用的符号 ,-*/

,表示列举出的枚举值。

例如:在分钟里面使用5,20 则表示在时间间隔分钟数为5、20时触发的事件

如果没有逗号则表示一个具体的值

- 表示范围。

例如在分钟里面使用5-20,则表示在事件分钟数为5-20 每一分钟都触发的事件,

如果此时在秒上设置的是0,那么就表示在每小时里面的5分0秒触发一次,6分0秒触发一次,一指到20分0秒触发完,下一个小时继续如此

* 表示匹配该域的任意值

例如在分钟域使用*,则表示时间分钟数不做限制,每分钟都在触发事件

例如秒设置2,分钟设置* ,则就表示,在1分2秒,2分2秒。。。直到59分2秒都会触发,下一个小时继续如此

/表示起始时间开始触发(左侧),然后每隔固定的时间触发一次(右侧),

例如在分钟域使用5/20,表示时间的分钟数为5时触发一次,然后每个20分钟触发一次即为25,45再次触发一次,然后这个小时以后的时间就不再触发,从下个小时开始触发

思考1:0 0 2 1 * ?

每隔0秒,0分,每天两点,每个月的1号,*代表每个月,?代表不限定

整个的意思就是:每个月的1号2时0分0秒执行一次

思考2:0 10,44 14 ? 3 WED

在每年的3月的星期三14时10分0秒和14时44分0秒会触发(每年就触发这两次)

专用符号

?只能在DayofMonth和DayofWeek两个域,由于DayofMonth和DayofWeek互斥,因此只能对其中一个进行设置?

L表示最后,只能在DayofMonth和DayofWeek两个域,如果在DayofWeek域使用5L,意味着在最后一个星期四触发

w 表示有效工作日(周一到周五),只能出现在DayofMonth域,系统将在离指定日期最近的有效工作日触发事件

W不可以单独用:比如DayofMonth写了5w ,

意为:在每个月5号最近的工作日触发(既可以往前推又可以往后推)简单来说就是就近工作日原则

LW可用连用,表示在某个月的最后一个工作日

# 用于确定每个月第几个星期几,只能出现在DayofWeek域。

例如4#2,表示某个月的第二个星期三

4表示星期三 2表示第二个

C 只能在DayofMonth和DayofWeek两个域,需要关联日历,如果没关联可以忽略(使用很少)

专有符号除?外,在Spring定时任务中都不支持

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值