CRON表达式简单介绍和示例

cron表达式 通常由 6个或者七个域组成 :秒 分 时 日 月 周 年 。年有时可以忽略(Seconds Minutes Hours DayofMonth Month DayofWeek

每个域可以由数字或者特殊符号填充:
规则如下

允许值允许的特殊符号
Seconds0-59, - * / 四个字符
Minutes0-59, - * / 四个字符
Hours0-23, - * / 四个字符
DayofMonth1-31,- * ? / L W C 八个字符
Month1-12, - * / 四个字符
DayofWeek1-7, - * ? / L C # 八个字符
年(可选 可空) Year1970-2099, - * / 四个字符

特殊符号的含义

  • *:可以匹配允许值区域内的任意值

  • ?:可以匹配允许值区域内的任意值,但是只有 日 周 两个域可以使用,并且这两个是有排斥的。假设一个场景,希望每月的5号执行一次 ,则cron表达式为 * * * 5 * ?(A) ,不能为 * * * 5 * * (B),如果使用B表达式,则意思为每周都可以,不符合…

  • -:表示范围,如果再 分 域上使用 5-10 ,则表示则在第5分和20分这段时间内,每分钟触发一次

  • /:可以指定触发起始时间和固定间隔时间 比如在 分 域上是使用 5/10 ,表示从第五分开始执行一次,然后每间隔十分钟执行一次

  • L:表示最后的意思 只能在 日 周 连个域使用,如果在 日 域上使用,* 30 8 L * ?表示在每月的最后一天的8:30 触发(如果在6月 则为30日的8:30 如果是7月 则为31日的8:30). 如果使用在 周 域上* 30 8 ? * L 表示在每月的最后一个周六 8:30触发。 周域中还可以域 数字搭配使用 比如 * 30 8 ? * 3L 表示在每月的最后一个星期二触发。 4L表示在周三触发 一次类推

  • W:表示平日(工作日) 只能在日域中使用,它用来指定离指定日期最近的一个平日,比如在日域中使用15W,则会在离15日最近的一个平日触发,假如15日为周六,则会在14日触发,如果15日为平日,则会在15日触发

  • #:只能使用在周域中,表示在月份的第几周的周几,比如 周域的值为 6#3 则会在指定月的第三个星期五触发 (6周五 3本月的第三个星期)

    常见的CORN表达式

  1. 每天 8:30 触发一次

     0 30 8 ? * *
    
  2. 每天 8:30 ,15:30 触发一次

    0 30 8,15 ? * *
    
  3. 每天从 9点到17点 每隔半小时触发一次

    0 0/30 9-17 ? * *
    
  4. 每天从 凌晨1点开始每隔4小时触发一次

    0 0 1/4 ? * *
    
  5. 每天8点 每隔一分钟触发一次

    0 * 8 ? * *
    
  6. 周一至周五 每天上午 8:30 触发一次

    0 30 8 * * MON-FRI
    
  7. 每月的最后一个星期五的18:30触发一次

    0 30 18 ? * 6L
    
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值