SpringBoot 集成 Quartz 02

实验环境

  • IDEA
  • Spring Boot:2.4.4
  • Gradle:6.8.3
  • Quartz:2.3.2

CronTrigger 中的 Cron Expressions

Cron Expressions是由七个子表达式组成的字符串,用于描述日程表的各个细节。这些子表达式用空格分隔,分别表示:
* Seconds(秒)
* Minutes(分)
* Hours(时)
* Day-of-Month(日)
* Month(月)
* Day-of-Week(周)
* Year (年)

单个子表达式取值

  1. 单个子表达式可以包含范围和/或列表。
    例如,可以用“MON-FRI”,“MON,WED,FRI”或甚至“MON-WED,SAT”表示星期几的字段。

  2. 通配符(’ ‘字符)可用于说明该字段的“每个”可能的值。
    例如,在“月”字段中使用“”字符,表示“每个月”;在“星期几”字段中使用“*”,表示“每周的每一天”。

  3. 所有字段都有一组可以指定的有效值。

字段 指定的有效值 备注
Seconds(秒) 0-59
Minutes(分) 0-59
Hours(时) 0-23
Day-of-Month(日) 1-31 需要注意给定的月份中有多少天
Month(月) 0-11 或 JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC
Day-of-Week(周) 1-7 或 SUN,MON,TUE,WED,THU,FRI,SAT 1代表星期日
Year (年)
  1. ’/‘字符可用于指定值的增量。
    例如,在“分钟”字段中使用“0/15”,表示“每隔15分钟,从0分钟开始”;在“分钟”字段中使用“3/20”,表示“每隔20分钟,从3分钟开始”;在“分钟”字段中使用“ / 35”,表示“每隔35分钟,从0分钟开始”。

  2. ‘?’ 字符允许用于日期和星期几字段,用于指定“无特定值”。

  3. “L”字符允许用于月日和周字段,代表“最后”。
    例如,“月”字段中的“L”表示“月的最后一天”;“周”字段的“L”表示“7”或“SAT”。
    但是如果在“周”字段中再次使用这个值,就表示“最后一个月的xxx日”;例如,“周”字段的“6L”或“FRIL”表示“月的最后一个星期五”。
    除以上用法,还可以指定从该月最后一天的偏移量,例如“日”字段的“L-3”,表示月的倒数第三天到最后一天。

  4. “W”用于指定距离给定日期最近的工作日(星期一至星期五)。
    例如,“日”字段中的“15W”表示“距离当月15日最近的工作日”。

  5. ‘#’用于指定本月的“第n个”XXX工作日。
    例如,“周”字段中的“6#3”或“FRI#3”表示“本月的第三个星期五”。