cron 表达式常用符号

cron表达式

我们就从一个简单的cron表达式例子开始,cron = 0 0 2 * * ? ,这个表达式的含义是每天凌晨两点执行一次任务。可以看到cron表达式是一个字符串,以5或者6个空格隔开(示例中是被5个空格隔开)。字符串被切割为6个或者7个域,每个域都代表不同的含义。从左到右依次为"秒 分 时 日 月 星期几 年" ,其中年不是必须的的,所以cron表达式有两种形式:

{Seconds} {Minutes} {Hours} {DayofMonth} {Month} {DayofWeek} {Year}或
{Seconds} {Minutes} {Hours} {DayofMonth} {Month} {DayofWeek}

各个域的含义如下:

特殊字符

  • * : 表示匹配该域的任意值。比如Minutes域使用*,就表示每分钟都会触发。
  • - : 表示范围。比如Minutes域使用 10-20,就表示从10分钟到20分钟每分钟都会触发一次。
  • , : 表示列出枚举值。比如Minutes域使用1,3,就表示1分钟和3分钟都会触发一次。
  • / : 表示间隔时间触发(开始时间/时间间隔)。例如在Minutes域使用 5/10,就表示从第5分钟开始,每隔10分钟触发一次。
  • ? : 表示不指定值。简单理解就是忽略该字段的值,直接根据另一个字段的值触发执行。
  • # : 表示该月第n个星期x(x#n),仅用星期域。如:星期:6#3,表示该月的第三个星期五。
    L : 表示最后,是单词"last"的缩写(最后一天或最后一个星期几);仅出现在日和星期的域中。用在日则表示该月的最后一天,用在星期则表示该月的最后一个星期。如:星期域上的值为5L,则表示该月最后一个星期的星期四。在使用’L’时,不要指定列表’,‘或范围’-',否则易导致出现意料之外的结果。
  • W: 仅用在日的域中,表示距离当月给定日期最近的工作日(周一到周五),是单词"weekday"的缩写。
    比如:"4W"表示距离4号最近的工作日(当月的)触发;

(1)当4号就是工作日时,则表示当天触发;当4号为周六时,则表示3号(周五)触发;

(2)当4号为周日时,则表示在5号(周一)触发;

比如:"1W"表示距离1号最近的工作日触发事件,但是,该工作日只算当月的。假如当月1号是周六,则"1W"表示在当月3号(周一)触发。就算上个月的最后一天是工作日,也不会触发。

  • LW: ‘L’和’W’可以一起组合在日字段使用。表示当月的最后一个工作日触发事件。

取值说明

DayofMonth
可以用数字1-31 中的任一个值,但要注意一些特别的月份。

Month
一年中的月份,可以用0-11 或用字符串 “JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC” 表示。

DayofWeek
表示星期几,可以用数字1-7(1=星期日),或者用字符串"SUN, MON, TUE, WED, THU, FRI and SAT"来表示。

常用cron表达式
*/10 * * * * ? 每隔10秒执行一次

0 */5 * * * ? 每隔5分钟执行一次

0 2,22,32 * * * ? 在2分、22分、32分执行一次

0 0 4-8 * * ? 每天4-8点整点执行一次

0 0 2 * * ? 每天凌晨2点执行一次

0 0 2 1 * ? 每月1号凌晨2点执行一次

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值