每秒 允许的通配符[, - * /]
周期从 -
秒开始,每 秒执行一次
指定
00 01 02 03 04 05 06 07 08 09
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59
分钟 允许的通配符[, - * /]
周期从 - 分钟
分钟开始,每 分钟执行一次
指定
00 01 02 03 04 05 06 07 08 09
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59
小时 允许的通配符[, - * /]
周期从 - 小时
小时开始,每 小时执行一次
指定
AM: 00 01 02 03 04 05 06 07 08 09 10 11
PM: 12 13 14 15 16 17 18 19 20 21 22 23
日 允许的通配符[, - * / L W]
不指定
周期从 -
日开始,每 天执行一次
每月 号最近的那个工作日
每月最后一天
指定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
月 允许的通配符[, - * /]
不指定
周期从 -
日开始,每 月执行一次
指定
1 2 3 4 5 6 7 8 9 10 11 12
周 允许的通配符[, - * / L #]
不指定
周期 从星期 -
周 的星期
本月最后一个星期
指定
1 2 3 4 5 6 7
不指定 允许的通配符[, - * /] 非必填
每年
周期 从 -
表达式
分钟 小时
星期
表达式字段:
Cron 表达式:
最近5次运行时间:
Cron表达式教程

Cron 表达式是一种用于指定定时任务执行时间的字符串表达式。它由 6 个字段组成,分别表示秒、分钟、小时、天数、月份和星期几。每个字段都可以使用特定的符号来指定时间范围或间隔。Cron 表达式非常灵活,可以满足各种定时任务的需求。但需要注意的是,Cron 表达式只能表示固定的时间点,无法处理复杂的时间逻辑。如果需要更复杂的定时任务调度,可能需要借助专门的调度框架或库。

Cron表达式
                ┌──────────── [可选] 秒 (0 - 59)
                 | ┌────────── 分钟 (0 - 59)
                 | | ┌──────── 小时 (0 - 23)
                 | | | ┌────── 天数 (1 - 31)
                 | | | | ┌──── 月份 (1 - 12) OR jan,feb,mar,apr ...
                 | | | | | ┌── 星期几 (0 - 6, 星期天 = 0) OR sun,mon ...
                 | | | | | |
                 * * * * * * 命令
                                                
除了基本的数字范围外,Cron 表达式还支持一些特殊符号和字符:
  • 星号(*):表示匹配任意值。例如,* 在分钟字段中表示每分钟都执行。
  • 逗号(,):用于分隔多个值。例如,1,3,5 在小时字段中表示 1 点、3 点和 5 点执行。
  • 斜线(/):用于指定间隔值。例如,*/5 在分钟字段中表示每 5 分钟执行一次。
  • 连字符(-):用于指定范围。例如,10-20 在日期字段中表示从 10 号到 20 号。
  • 问号(?):仅用于日期和星期几字段,表示不指定具体值。通常用于避免冲突。
以下是一些示例 Cron 表达式:
  • 0 0 12 * * ?:每天中午 12 点执行。
  • */10 * * * * ?: 每隔10秒执行一次
  • 0 0/5 * * * ?:每 5 分钟执行一次。
  • 0 0 10,14,16 * * ? :每天上午 10 点,下午 2 点、4 点
  • 0 0/30 9-17 * * ? :朝九晚五工作时间内,每半小时
  • 0 0 12 ? * WED :表示每个星期三中午 12 点
  • 0 0 12 * * ? :每天中午 12 点触发
  • 0 15 10 * * ? :每天上午 10:15 触发
  • 0 * 14 * * ? :在每天下午 2 点到下午 2:59 期间,每 1 分钟触发
  • 0 0/5 14 * * ? :在每天下午 2 点到下午 2:55 期间,每 5 分钟触发
  • 0 0/5 14,18 * * ? :在每天下午 2 点到 2:55 期间和下午 6 点到 6:55 期间,每 5 分钟触发
  • 0 0-5 14 * * ? :在每天下午 2 点到下午 2:05 期间,每 1 分钟触发
  • 0 10,44 14 ? 3 WED :每年三月的星期三的下午 2:10 和 2:44 触发
  • 0 15 10 ? * MON-FRI :周一至周五的上午 10:15 触发
  • 0 15 10 15 * ? :每月15日上午 10:15 触发
  • 0 15 10 L * ? :每月最后一日的上午 10:15 触发
  • 0 15 10 ? * 6L :每月的最后一个星期五上午 10:15 触发
  • 0 15 10 ? * 6L 2002-2005 :2002 年至 2005 年,每月的最后一个星期五上午 10:15 触发
  • 0 15 10 ? * 6#3 :每月的第三个星期五上午 10:15 触发
  • 0 0 8-18 ? * MON-FRI:周一至周五的 8 点到 18 点之间每小时执行一次。