先确定目标调度器
经典五字段 Cron、Quartz、systemd 与云调度器并不共用同一种语法。编写表达式前,请在目标产品的官方文档中核对字段数量、星期取值以及时区配置位置。
本页采用经典五字段 Cron:分钟、小时、月中日期、月份、星期。Quartz、systemd 和云调度器可能使用不同语法。本解释仅用于预检查;请在目标系统中核验实际引擎、时区与后续运行时间。
在实时工具中测试 →经典五字段 Cron、Quartz、systemd 与云调度器并不共用同一种语法。编写表达式前,请在目标产品的官方文档中核对字段数量、星期取值以及时区配置位置。
只把表达式翻译成人类语言还不够。请列出至少五次后续运行时间,并结合实际部署地区测试月末、闰日、夏令时切换以及错过任务后的处理策略。
记录任务重叠时的行为、重试上限、超时和告警负责人。如果前一次尚未结束就可能启动下一次,则还需要独立设计锁或幂等机制;这些不能由 Cron 表达式本身解决。
如果任务必须恰好执行一次、等待上一任务结果,或需要无调度延迟地响应事件,那么只用 Cron 可能不合适。还应分别评估事件触发器、持久队列、分布式锁与可观测的重试策略。
| 语法 | 含义 | 示例 |
|---|---|---|
1 · dakika | 0–59 | 0 |
2 · saat | 0–23 | 3 |
3 · ayın günü | 1–31 | 1 |
4 · ay | 1–12 | 1,6,12 |
5 · haftanın günü | 通常为 0–7;星期日可为 0 或 7 | 1-5 |
| 语法 | 含义 | 示例 |
|---|---|---|
* * * * * | 每分钟 | — |
*/15 * * * * | 每 15 分钟 | — |
0 3 * * * | 每天 03:00 | — |
30 9 * * 1-5 | 周一至周五 09:30 | — |
0 0 1 * * | 每月第一天 00:00 | — |
0 6,18 * * * | 每天 06:00 与 18:00 | — |
| 语法 | 含义 | 示例 |
|---|---|---|
Saat dilimi | Cron 文本中不可见;请记录调度器配置 | — |
DST | 本地时间任务可能跳过或重复 | — |
İdempotency | 确保重复触发仍然安全 | — |
Gözlemlenebilirlik | 记录计划/实际开始时间与结果 | — |
经典五字段表达式不包含时区。时区由守护进程、容器或平台配置提供。
不同引擎的语义可能不同;有些引擎任一字段匹配就会运行。请检查生产引擎文档与后续运行时间。