Cron表达式简介

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

Cron表达式

cron表达式包含6个字段:

       

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

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

字段名 允许值 允许字符
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) 它用于指定事件应在每个时间单位发生。 例如:在 中使用 * ,表示每分钟都会执行。

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

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

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

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

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

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

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

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

Cron表达式示例


每天上午8点

0 0 8 * * ?

...

你可能感兴趣的:(Cron表达式简介)