无需登录 数据私有 本地保存

Cron定时任务生成器 - 通过点选构建表达式

12
0
0
0
Cron 定时任务生成器
可视化构建,实时预览,开箱即用
快速预设:
分 Minute (0-59)
匹配所有分钟 (*)
时 Hour (0-23)
匹配所有小时 (*)
日 Day (1-31)
匹配所有日期 (*)
月 Month (1-12)
匹配所有月份 (*)
周 Week (0-7)
匹配所有星期 (*)
Cron 表达式:
* * * * *
每分钟执行
预计接下来5次执行时间
— 解析中...
基于当前系统时间模拟计算,实际执行时间取决于调度器实现
常见问题与 Cron 知识点
什么是 Cron 表达式?
Cron 表达式是一种用于定义定时任务执行时间的字符串格式,广泛应用于 Linux crontab、Java Quartz、Spring Scheduler、各类CI/CD工具等。标准 Cron 表达式由5个字段组成(分、时、日、月、周),部分系统扩展为6个字段(增加秒)。
5位和6位 Cron 有什么区别?
5位 Cron(标准)格式为:分 时 日 月 周,最小粒度到分钟,常见于 Linux crontab。6位 Cron 在开头增加了字段,格式为:秒 分 时 日 月 周,支持秒级调度,常见于 Quartz Scheduler 等框架。
Cron 表达式中的特殊符号含义?
  • *(星号):匹配所有值,如 * 在分钟字段表示每分钟
  • /(斜杠):步长,如 */5 表示每5个单位
  • ,(逗号):列举多个值,如 1,3,5
  • -(连字符):范围,如 1-5 表示1到5
  • ?(问号):仅用于日/周字段,表示不指定(Quartz等实现中常用)
  • L:Last,表示最后一天/最后一个工作日(扩展语法)
周字段中 0 和 7 有什么区别?
在 Cron 表达式中,周字段的 07 都表示周日(Sunday)。1 代表周一,2 代表周二,依此类推,6 代表周六。不同系统的默认值可能略有差异,但 0 和 7 均指向周日是通用规则。
日和周字段同时设置会怎样?
在标准 Cron 中,如果日字段和周字段都设置了具体值(都不是 *),则两个条件为OR关系——满足任一条件即触发。例如 0 0 15 * 3 表示"每月15号或每周三的0点0分执行"。为避免混淆,许多实现(如Quartz)推荐使用 ? 来明确"不关心"的字段。
如何避免 Cron 任务意外重复执行?
确保 Cron 表达式的频次设置合理,避免过于频繁(如每秒执行)。在分布式环境中,建议配合分布式锁或使用专门的调度框架(如 Quartz、XXL-JOB)来保证任务在集群中只执行一次。单机环境下可依赖锁文件或数据库锁来防止并发。
Cron 表达式生成后如何验证?
可以使用在线工具(如本生成器)来模拟执行时间、查看人类可读描述。也可在命令行使用 crontab -l 查看已配置的任务。对于 Java 项目,Quartz 的 CronExpression.isValidExpression() 方法可以进行编程式验证。