美文网首页
Cron 表达式

Cron 表达式

作者: Tinyspot | 来源:发表于2025-01-19 15:22 被阅读0次

1. 基础

Cron 表达式,用于配置定时任务

1.1 语法

CRON 表达式是一个字符串,以 5 或 6 个空格隔开,分为 6 或 7 个域,每一个域代表一个含义
语法格式:秒 分 时 日期 月份 星期 [年份]

* * * * * * [year]
| | | | | | |
| | | | | | +--- 年份(可选):四位数的年份
| | | | | +----- 月份 (1 - 12)
| | | | +------- 日期 (1 - 31)
| | | +--------- 周/星期 (1-7)  注:0 和 7 都表示星期天
| | +----------- 小时 (0 - 23)
| +------------- 分钟 (0 - 59)
+------------- 秒 (0 - 59)

说明:
Seconds 秒,范围为 0-59
Minutes 分钟,范围为 0-59
Hours 小时,范围为 0-23(24小时制)
Day of the Month 月内日期,范围为1-31
Month 月份,可以用数字表示(1-12),也可以月份的英文简写(如Jan、Feb等)。
Day of the Week 周内日期,范围为0-7(或1-7,具体取决于系统),其中0或7通常代表周日,1-6分别代表周一至周六。也可以使用星期英文简写(如Sun、Mon等)。
Year 四位数的年份

1.2 特殊字符

字符 含义 示例
* 表示匹配域的任意值
/ 步长,表示起始时间开始触发,然后每隔固定时间触发一次 */5 * * * * ?:每隔 5 秒执行一次
0 */1 * * * ?:每隔 1 分钟执行一次
0 5/20 * * * ?: 表示在第 5 分钟触发一次,之后每 20 分钟触发一次,即 5、 25、45 等分别触发一次
0 0/30 * * * ?: 表示每小时的第 0 分钟和第 30 分钟
- 范围 0 0/30 9-17 * * ?:9~17点内每半小时执行一次
, 列表,使用逗号分隔多个值 0 0 10,14,16 * * ?:每天上午 10 点,下午 2 点,4 点执行一次
# 表示每个月第几个星期几
W 有效工作日
L 表示最后,只能出现在日和星期两个域
LW 在某个月最后一个工作日,即最后一个星期五

补充:
数字/步长 表示一个范围内的数字,每隔“步长”选取一个数字。例如,*/5 指的是每 5 分钟。
起始-结束 表示一个区间,如 10-12 指的是 10 到 12 之间的数字。
起始-结束/步长 结合了区间和步长,如 10-20/5 指的是从 10 到 20 之间每隔 5 取一个数

2. Java 定时任务

格式 秒 分 小时 日 月 周 [年]
工具 https://tool.lu/crontab/

Linux
    *    *    *    *    *
    -    -    -    -    -
    |    |    |    |    |
    |    |    |    |    +----- day of week (0 - 7) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    |    |    |    +---------- month (1 - 12) OR jan,feb,mar,apr ...
    |    |    +--------------- day of month (1 - 31)
    |    +-------------------- hour (0 - 23)
    +------------------------- minute (0 - 59)

Java(Spring)
    *    *    *    *    *    *
    -    -    -    -    -    -
    |    |    |    |    |    |
    |    |    |    |    |    +----- day of week (0 - 7) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    |    |    |    |    +---------- month (1 - 12) OR jan,feb,mar,apr ...
    |    |    |    +--------------- day of month (1 - 31)
    |    |    +-------------------- hour (0 - 23)
    |    +------------------------- min (0 - 59)
    +------------------------------ second (0 - 59)

Java(Quartz)
    *    *    *    *    *    *    *
    -    -    -    -    -    -    -
    |    |    |    |    |    |    |
    |    |    |    |    |    |    + year [optional]
    |    |    |    |    |    +----- day of week (1 - 7) sun,mon,tue,wed,thu,fri,sat
    |    |    |    |    +---------- month (1 - 12) OR jan,feb,mar,apr ...
    |    |    |    +--------------- day of month (1 - 31)
    |    |    +-------------------- hour (0 - 23)
    |    +------------------------- min (0 - 59)
    +------------------------------ second (0 - 59)

4. References

CRON 表达式详解 https://help.aliyun.com/document_detail/133509.html

相关文章

网友评论

      本文标题:Cron 表达式

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