温馨提示×

Quartz表达式中Cron语法的详细解析

小樊
83
2024-09-03 11:21:24
栏目: 编程语言

Quartz是一个开源的Java作业调度框架,它使用CRON表达式来定义任务的执行计划。CRON表达式是一种时间描述格式,由7个(或6个)字段组成,字段之间用空格分隔。以下是对Quartz CRON表达式的详细解析:

  1. 秒(second):范围从0到59。表示一分钟内的秒数。
  2. 分(minute):范围从0到59。表示一小时内的分钟数。
  3. 小时(hour):范围从0到23。表示一天内的小时数(24小时制)。
  4. 日期(day of month):范围从1到31。表示一个月内的日期。
  5. 月份(month):范围从1(1月)到12(12月)。表示一年内的月份。
  6. 星期(day of week):范围从1(周日)到7(周六)。表示一周内的星期几。在某些系统中,0和7都表示周日。
  7. (可选)年(year):范围从1970到2099。表示年份。

CRON表达式支持的特殊字符:

  • *:表示任意值,用于表示该字段可以匹配任何值。
  • ?:表示不指定值,用于日期和星期字段,表示不关心该字段的具体值。
  • -:表示范围,例如1-5表示1到5之间的数值。
  • ,:表示枚举值,例如1,3,5表示1、3和5。
  • /:表示步长,例如*/2表示每隔2个单位执行一次。
  • L:表示最后,仅适用于日期和星期字段。例如,5L表示一个月的最后一个星期五。
  • W:表示工作日,仅适用于日期字段。例如,15W表示离15号最近的工作日。
  • #:表示第几个,仅适用于星期字段。例如,5#3表示一个月的第三个星期五。

CRON表达式示例:

  • 0 0 12 * * ?:每天中午12点执行。
  • 0 15 10 ? * *:每天上午10点15分执行。
  • 0 0/5 * * * ?:每隔5分钟执行一次。
  • 0 0 0 * * ?:每天凌晨0点执行。
  • 0 0 0 ? * 6L:每个月的最后一个星期六执行。
  • 0 0 0 ? * 6L 2022:2022年每个月的最后一个星期六执行。

0