解释每个字段的含义,并计算接下来的执行时间
| 符号 | 含义 | 示例 |
|---|---|---|
| * | 任意值 | 分钟位为 * 表示每分钟 |
| , | 列举多个值 | 1,15 表示第1和第15 |
| - | 范围 | 9-17 表示9点到17点 |
| / | 步长(间隔) | */10 表示每10个单位,5/15 表示从5开始每15 |
| ? | 不指定(Spring/Quartz的日或周) | 0 0 2 * * ? 表示每天凌晨2点 |
| L | 最后(Spring/Quartz) | 日位 L 表示每月最后一天;周位 6L 表示最后一个周五(Quartz) |
| # | 第几个星期几(Spring/Quartz) | 周位 MON#1(Spring)或 2#1(Quartz)表示每月第一个周一 |
Cron表达式工具可以解析Linux Crontab(5位)、Spring @Scheduled(6位)和Quartz(6到7位)三种格式的Cron表达式,逐个字段解释含义,并计算接下来10次的执行时间;同时提供每5分钟、每天凌晨、工作日早上等常用表达式,点击即可套用。
Linux Crontab是5位:分 时 日 月 周;Spring @Scheduled是6位,最前面多了“秒”。同样是每天凌晨2点,Linux写作 0 2 * * *,Spring写作 0 0 2 * * *。
问号表示“不指定”,Quartz要求“日”和“周”两个字段中必须有一个是问号,避免两者冲突,例如 0 0 2 * * ? 表示每天凌晨2点。
不一样。Quartz中1表示周日、2表示周一;Spring和Linux中0或7表示周日、1表示周一。用英文缩写MON、TUE等可以避免混淆。