CRON表达式

「爱情、让人受尽委屈。」 2022-05-19 08:00 359阅读 0赞

spring中的定时任务采用@Schedule注解实现,这个注解用到了CRON表达式,实现定时的功能

  • CRON表达式的格式

Seconds Minutes Hours DayofMonth Month DayofWeek Year或

Seconds Minutes Hours DayofMonth Month DayofWeek

上式中的字段分别表示 秒 分 时 日 月 星期 年

  • 每个字段的有效值

    seconds:0-59,特殊字符 , - /
    minutes:0-59,特殊字符 , -
    /
    hours:0-59,特殊字符 , - /
    DayofMonth:0-31,特殊字符, -
    / ? L W C
    Month:1-12,特殊字符, - /
    DayofWeek :1-7,特殊字符, -
    / ? L C #
    year:1970-2099,特殊字符, - * /

  • 特殊字符的含义

    (1):表示匹配该域的任意值。假如在Minutes域使用, 即表示每分钟都会触发事件。

    (2)?:只能用在DayofMonth和DayofWeek两个域。表示不关心它的值。例如想在每月的20日触发调度,不管20日到底是星期几,则只能使用如下写法: 13 13 15 20 ?, 其中最后一位只能用?,而不能使用,如果使用*表示不管星期几都会触发,实际上并不是这样。

    (3)-:表示范围。例如在Minutes域使用5-20,表示从5分到20分钟每分钟触发一次

    (4)/:表示起始时间开始触发,然后每隔固定时间触发一次。例如在Minutes域使用5/20,则意味着5分钟触发一次,而25,45等分别触发一次.

    (5),:表示列出枚举值。例如:在Minutes域使用5,20,则意味着在5和20分每分钟触发一次。

    (6)L:表示最后,只能出现在DayofWeek和DayofMonth域。如果在DayofWeek域使用5L,意味着在最后的一个星期四触发。

    (7)W:表示有效工作日(周一到周五),只能出现在DayofMonth域,系统将在离指定日期的最近的有效工作日触发事件。例如:在 DayofMonth使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。如果5日是星期天,则在6日(周一)触发;如果5日在星期一到星期五中的一天,则就在5日触发。另外一点,W的最近寻找不会跨过月份 。
    (8)LW:这两个字符可以连用,表示在某个月最后一个工作日,即最后一个星期五。

    (9)#:用于确定每个月第几个星期几,只能出现在DayofMonth域。例如在4#2,表示某月的第二个星期三。

  • 实例

    “30 ?” 每半分钟触发任务
    0 0 12 ? 每天中午12点触发
    0 14 ? 在每天下午2点到下午2:59期间的每1分钟触发
    0 15 10 L
    ? 每月最后一日的上午10:15触发
    30 10 1 20 10 ? “ 每年10月20号1点10分30秒触发任务
    0 15 10 ?
    6L 每月的最后一个星期五上午10:15触发
    0 0 10,14,16 ? 每天上午10点,下午2点,4点
    每隔5秒执行一次:/5 ?
    每隔1分钟执行一次:0
    /1 ?
    每天23点执行一次:0 0 23
    ?
    每天凌晨1点执行一次:0 0 1
    ?
    每月1号凌晨1点执行一次:0 0 1 1
    ?
    每月最后一天23点执行一次:0 0 23 L ?
    每周星期天凌晨1点实行一次:0 0 1 ?
    L
    在26分、29分、33分执行一次:0 26,29,33 ?
    每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21
    * ?

  • 在spring中定时任务的应用

    @Schedule(cron=”0 15 10 L * ?”)

发表评论

表情:
评论列表 (有 0 条评论,359人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Cron】学习:cron 表达式

    不知道你在玩游戏的时候是否发现过以下情况: 1. 玩某些游戏的时候,发现他的排行榜并不是时时更新的,而是每半个小时,或者一个小时更新一次。 2. 又比如很火的王者荣耀手游

    相关 Cron表达式

      Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式:   (1) Seconds Minutes Ho