Cron Guide
什么是 Cron 表达式?
Cron 表达式是一种描述定时任务执行规则的字符串,常用于服务器脚本、后台任务、消息补偿、数据同步、报表生成和 Spring 定时任务。 普通 Linux Crontab 常见格式是 5 位字段,分别表示分钟、小时、日期、月份和星期;Quartz Cron 通常支持 6 位或 7 位字段,会在最前面增加“秒”,并可选增加“年份”。
这个 Cron 表达式生成器面向 Quartz Cron 场景设计,支持秒、分钟、小时、日、月、周、年逐项配置。你可以通过可视化选项生成表达式,也可以直接粘贴已有表达式进行反解析,查看中文解释和最近运行时间。
如果你正在配置 Java Spring、Quartz Scheduler、XXL-JOB、定时任务平台或自动化调度脚本,这类工具可以降低手写表达式出错的概率,尤其适合检查“每天几点执行”“每隔几分钟执行”“每周几执行”“每月最后一天执行”等规则。
Field Reference
Quartz Cron 七字段说明
Quartz Cron 的完整格式通常是:秒 分钟 小时 日 月 周 年。其中年份字段可选,不同框架对特殊符号的支持略有差异,正式上线前应以实际调度器的解析结果为准。
秒0-59控制任务在每分钟的第几秒触发,例如 0/5 表示从第 0 秒开始每 5 秒执行一次。
分钟0-59控制任务在每小时的第几分钟触发,例如 0/10 表示每 10 分钟执行一次。
小时0-23控制任务在一天中的第几个小时触发,例如 9-18 表示 9 点到 18 点范围内匹配。
日1-31控制每月第几天执行。Quartz 中常用 ? 表示不指定,L 表示最后一天,W 表示最近工作日。
月1-12控制在哪些月份执行,可以用数字,也可以在部分框架中使用英文月份缩写。
周1-7控制星期几执行。Quartz 常用 ? 避免与“日”字段冲突,也支持工作日范围写法。
年可选限制表达式在哪些年份生效。大多数长期运行任务会使用 * 表示每年都生效。
Common Patterns
常见 Cron 表达式示例
下面这些是后台开发、运维调度和自动化任务中最常见的 Cron 写法。你可以先从示例开始,再根据业务需要调整秒、分钟、小时、日、月、周和年字段。
每 5 秒执行
0/5 * * * * ? *适合短周期轮询、测试环境任务和临时调试。生产环境应谨慎使用,避免任务堆积。
每 10 分钟执行
0 0/10 * * * ? *适合缓存刷新、消息补偿、轻量数据同步等周期任务。
每天凌晨执行
0 0 0 * * ? *适合日报生成、数据归档、离线统计和低峰期批处理。
每天上午 9 点
0 0 9 * * ? *适合工作日开始前的提醒、报表初始化或自动检查任务。
工作日 10:15
0 15 10 ? * 2-6 *适合只在周一到周五触发的办公流程、通知任务和业务巡检。
每月最后一天
0 15 10 L * ? *适合月度结算、账单生成、月末数据汇总等场景。