Cron表达式简介

cron是在基于Unix的系统上可用的基本实用程序。 它使用户可以安排任务在指定的日期/时间定期运行;cron表达式格式被广泛采用,如SpringBoot中的定时器。

Cron表达式

cron表达式包含6个字段:

<second> <minute> <hour> <day-of-month> <month> <day-of-week> <year> <command>

上面这些字段中,<year>字段是可选填的。

每个字段可填写的值如下:

字段名 允许值 允许字符
second 0-59 , - * /
minute 0-59 , - * /
hour 0-23 , - * /
day-of-month 0-31 , - * ? / L W C
month 1-12 or JAN-DEC , - * /
day-of-week 1-7 or SUN-SAT , - * / ? L C #
year 1970-2099 , - * /

表达式中字符

  • * (all) 它用于指定事件应在每个时间单位发生。 例如:在 <minute> 中使用 * ,表示每分钟都会执行。

  • ? (any) 在<day-of-month>和<day-of-week>字段中使用它来表示任意值,忽略该字段值。 例如,我们想要在每个月的5号触发它,而不管它这天是周几,这样就可以将 <day-of-week> 指定为“?”。

  • - (range) 表示值的范围,例如,<hour>字段中的“10-11”表示第10和第11个小时会执行。

  • , (values) 用户指定多个值,例如,<day-of-week>中设置”MON, WED, FRI“则表示周一、周三、周五会执行。

  • / (increments) 指定增量值。 例如,<minute>字段中设置“ 5/15”则表示每小时的5、20、35和50分钟执行(从第5分钟开始每隔15分钟执行一次)。

  • L (last) 在各个字段中使用时,它具有不同的含义。 例如,如果在<day-of-month>字段中使用它,则表示月份的最后一天,如“1月31日”,根据日历月份依此类推。 它也可以与”-“一起使用,例如“L-3”,它表示“日历月的第三天到最后一天”。 在<day-of-week>中,它指定“一周的最后一天”。 它也可以与<day-of-week>中的另一个值一起使用,例如“ 6L”,表示“最后一个星期五”

  • W (weekday) 用于指定最接近该月某一天的工作日(周一到周五)。例如,如果我们在<day-of-month>字段中指定10W,那么它意味着该月10日附近的工作日。所以如果10号是星期六,那么9号触发作业,如果10号是星期天,那么11号触发作业。如果您在<day-of-month>中指定了1W,如果1日是星期六,那么作业将在3日即星期一被触发,它将不会跳回前一个月。

  • # 它用于指定每个月第几个星期几,例如,“该月的第三个星期五”可以表示为“6#3”。

  • C 该字符只在<day-of-month>和<day-of-week>字段中使用,代表“Calendar”的意思。它的意思是计划所关联的日期,如果日期没有被关联,则相当于日历中所有日期。例如 5C 在日期字段中就相当于日历 5 日以后的第一天;1C 在星期字段中相当于星期日后的第一天。

Cron表达式示例


每天上午8点

0 0 8 * * ?

...

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在线cron表达式生成器 cron表达式用于配置cronTrigger的实例。cron表达式实际上是由七个子表达式...
    晚歌歌阅读 2,549评论 0 0
  • cron表达式用于配置cronTrigger的实例。cron表达式实际上是由七个子表达式组成。这些表达式之间...
    我是一只小小鸟_flying阅读 855评论 0 0
  • cron表达式用于配置cronTrigger的实例。cron表达式实际上是由七个子表达式组成。这些表达式之间用空格...
    weworld阅读 14,212评论 0 7
  • 一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。按顺序依次为:{秒数} {分钟} {小时} {日期...
    渡劫CD阅读 1,222评论 0 1
  • Cron表达式的格式 Seconds Minutes Hours DayofMonth Month DayofWe...
    _MrWhite阅读 384评论 0 1