Spring定时器-Cron表达式

更新时间:2018-06-27 13:49:32点击次数:1296次

一、Cron表达式是一个由 7个子表达式组成的字符串。每个子表达式都描述了一个单独的日程细节。这些子表达式用空格分隔,分别表示: 

 字段                                               允许值                                        允许的特殊字符 

1. Seconds 秒                                   0-59                                                 , - * /  

2. Minutes 分钟                                0-59                                                 , - * /

3. Hours 小时                                   0-23                                                 , - * /

4. Day-of-Month 月中的天               1-31                                                 , - * / ? L W

5. Month 月                                      1-12(或JAN-DEC)                        , - * / 

6. Day-of-Week 周中的天                 1-7(或SUN-SAT)                          , - * / ? L # 

7. Year  年(可选的字段)                 忽略(或1970-2099)                       , - * / 

SUN-SAT(周中天)  :1-7(1 = 星期日) 和 SUN, MON, TUE, WED, THU, FRI, SAT

JAN-DEC(月)  :1-12 和 JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC

格式:Seconds Minutes Hours Day-of-Month Month Day-of-Week Year


二、特殊字符含义

“*”:表示当前字段的任意值。

“-”:指定一个值的范围。

“,”:指定数个值。

“/”:表示为“每”。在 Minutes  字段中,“0/15”表示每隔15分钟执行一次,“0”表示为从“0”分开始,“3/20”表示每隔20分钟执行一次,“3”表示从第3分钟开始执行。

“?”:只能用于 Day-of-Month 和 Day-of-Week 字段,当这两个字段其中之一被指定了值以后,为了避免冲突,需要将另一个字段的值设为“?”。

“L”:只能用于 Day-of-Month 和 Day-of-Week 字段,表示一个月的后一天,或一个月的后一个星期几。在 Day-of-Week 字段中,“6L”表示“一月的后一个星期五”。

“W”:只能用于 Day-of-Month 字段,表示为近的工作日,“15W”表示为“到本月15日近的工作日”。

“#”:只能用于 Day-of-Week 字段,表示每月的第几个星期几,"6#3" or "FRI#3" 表示“每月的第三个星期五”。


三、附录 

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

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

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

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

"0 15 10 * * ? 2005" 2005年的每天上午10:15触发

"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发

"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发

"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 

"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发 

"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发

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

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

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

"0 15 10 ? * 6L" 每月的后一个星期五上午10:15触发

"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的后一个星期五上午10:15触发

"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发 

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息