cron表达式详解

发布时间 2023-08-28 22:10:16作者: hwj7

Cron表达式是一种用于指定定时任务执行时间的字符串表达式。它由6个或7个字段组成,每个字段代表一个时间单位或一个时间段。下面是对Cron表达式的详细解释:

  1. 秒(可选):0-59之间的整数,表示每分钟的哪一秒执行任务。例如,0表示每分钟的第0秒执行任务。

  2. 分钟:0-59之间的整数,表示每小时的哪一分钟执行任务。例如,30表示每小时的第30分钟执行任务。

  3. 小时:0-23之间的整数,表示每天的哪个小时执行任务。例如,12表示每天的中午12点执行任务。

  4. 日期:1-31之间的整数,表示每月的哪一天执行任务。例如,1表示每月的第1天执行任务。

  5. 月份:1-12之间的整数,表示每年的哪个月执行任务。例如,6表示每年的6月执行任务。

  6. 星期(可选):1-7之间的整数或者英文缩写(SUN-SAT),表示每周的哪一天执行任务。例如,7SAT表示每周六执行任务。

  7. 年份(可选):1970年至2099年之间的整数,表示任务的执行年份。例如,2022表示2022年执行任务。

Cron表达式还支持一些特殊字符和符号:

  • 星号(*):表示匹配该字段的所有值。例如,*在分钟字段中表示每分钟都执行任务。

  • 问号(?):只能在日期字段和星期字段中使用,表示不指定具体的值。

  • 斜线(/):用于指定时间间隔。例如,0/5在分钟字段中表示每5分钟执行任务。

  • 逗号(,):用于指定多个值。例如,1,3,5表示匹配1、3和5。

  • 连字符(-):用于指定一个范围。例如,10-15表示匹配10到15之间的值。

  • L:只能在日期字段和星期字段中使用,表示最后一个值。例如,L在日期字段中表示每月的最后一天。

  • W:只能在日期字段中使用,表示最近的工作日(周一至周五)。例如,15W在日期字段中表示最近的工作日,如果15号是周六,则匹配最近的周五(14号)。

  • #:只能在星期字段中使用,表示该月的第几个星期几。例如,6#3在星期字段中表示该月的第3个周六。

下面是一些示例Cron表达式:

  • 0 0 12 * * ?:每天中午12点执行任务。
  • 0 0/5 * * * ?:每5分钟执行任务。
  • 0 15 10 ? * MON-FRI:每周一至周五的上午10点15分执行任务。
  • 0 0 12 1/3 * ?:每隔3天的中午12点执行任务。