美文网首页
Cron表达式简介

Cron表达式简介

作者: 许渺 | 来源:发表于2020-04-28 21:14 被阅读0次

    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表达式简介

          本文链接:https://www.haomeiwen.com/subject/xqciwhtx.html