Cron 表达式生成器
Cron 表达式生成器是一个免费的在线工具,通过直观的界面帮助你创建和验证 cron 表达式。无需记忆晦涩的五字段(或六/七字段)cron 语法,你可以使用下拉菜单、复选框和滑块来构建调度计划。工具实时生成 cron 表达式并提供其英文描述。支持标准 Unix cron、Quartz(Java/Spring)、AWS CloudWatch 和其他 cron 变体。非常适合需要调度作业、自动化任务或配置定时触发的开发者、系统管理员和 DevOps 工程师。
功能介绍
Cron 表达式是一个表示执行循环任务计划的字符串。它被 Unix/Linux cron 守护进程、Java Quartz 调度器、AWS CloudWatch Events、Kubernetes CronJobs、GitHub Actions 定时工作流以及许多其他调度系统使用。 标准 cron 格式(5 个字段): - 分钟(0-59) - 小时(0-23) - 日期(1-31) - 月份(1-12 或 JAN-DEC) - 星期(0-7 或 SUN-SAT,其中 0 和 7 = 周日) 扩展格式: - 6 字段(Quartz):在开头添加秒(0-59) - 7 字段:在末尾添加年 特殊字符: - *(星号):所有值(每分钟、每小时等) - ,(逗号):多个值(1,3,5 = 第一、第三和第五) - -(连字符):值范围(1-5 = 第一到第五) - /(斜杠):步长值(*/15 = 每 15 个单位) - ?(问号):无特定值(用于日期或星期) - L:最后(本月最后一个、最后一个周五等) - W:工作日(最接近给定日期的工作日) - #:第 N 次出现(2#3 = 第三个周一) 常见示例: - 0 0 * * *:每天午夜 - */15 * * * *:每 15 分钟 - 0 9 * * 1-5:每个工作日上午 9 点 - 0 0 1 * *:每月第一天午夜 - 0 */6 * * *:每 6 小时 工具支持多种 cron 方言,并为每个表达式提供人类可读的描述。
使用方法
- 选择 cron 方言:标准 Unix cron(5 字段)、Quartz/Spring(6 字段含秒)、AWS CloudWatch 或其他变体。界面会自适应显示相应的字段。
- 使用可视化控件配置每个字段。对于分钟和小时,使用复选框选择特定值或输入步长表达式(如 */5 表示每 5 分钟)。对于日期,选择特定日期或使用特殊选项如 '最后一天'。
- 通过勾选作业运行的月份来设置月份字段。使用 '每月' 表示 * 或选择特定月份。工具在数字旁显示月份名称以便理解。
- 类似地配置星期字段。选择特定日期(周一至周五表示工作日)或使用表达式如 '每两天'。注意:日期和星期在某些 cron 实现中会交互影响。
- 在输出字段查看生成的 cron 表达式。它会随你调整任何设置实时更新。下方的英文描述准确解释作业何时运行。
- 使用 '下次运行时间' 功能测试表达式,该功能根据当前日期计算并显示接下来 5-10 次执行时间。这有助于验证表达式是否符合预期。
- 将 cron 表达式复制到剪贴板并粘贴到 crontab、CI/CD 管道配置、Kubernetes CronJob YAML 或任何调度系统中。使用 '验证' 按钮检查语法正确性。
计算示例
输入: 每天早上3:30
过程: 分钟=30, 小时=3, 日=*, 月=*, 周=*
结果: 30 3 * * *
输入: 每周一上午9:00
过程: 分钟=0, 小时=9, 周=1
结果: 0 9 * * 1
输入: 每15分钟
过程: 分钟=*/15, 小时=*
结果: */15 * * * *
相关搜索
相关搜索:cron 表达式生成器, cron 作业调度, cron 构建器, cron 表达式。
cron 表达式生成器cron 作业调度cron 构建器cron 表达式
常见问题
标准 cron 和 Quartz cron 有什么区别?
标准 Unix cron 有 5 个字段(分钟、小时、日期、月份、星期)。Quartz cron(用于 Java/Spring 应用)在开头添加秒字段,共 6 个字段。Quartz 还支持标准 cron 没有的额外特殊字符,如 L(最后)、W(工作日)和 #(第 N 次出现)。为 Spring 的 @Scheduled 注解或 Quartz 触发器生成表达式时,使用 6 字段 Quartz 格式。
如何让 cron 作业每 15 分钟运行一次?
使用表达式 */15 * * * *。分钟字段中的 */15 表示 '从第 0 分钟开始每 15 分钟'。这将在每小时的 :00、:15、:30 和 :45 运行。如果你希望它在 :05、:20、:35、:50 运行,使用 5/15 * * * *(从第 5 分钟开始,然后每 15 分钟)。
可以安排作业仅在工作日上午 9 点运行吗?
可以。使用 0 9 * * 1-5。0 表示第 0 分钟(整点),9 表示上午 9 点,1-5 表示周一到周五(其中 0/7 = 周日,1 = 周一,5 = 周五)。这将在每周一至周五上午 9:00 运行。
cron 表达式中的 '?' 字符是什么意思?
问号(?)表示 '无特定值',在 Quartz cron 中用于当你需要指定日期或星期字段之一但不是两者时。在标准 cron 中,如果两个日期字段都指定,则当任一条件为真时运行作业(OR 逻辑)。在 Quartz 中,你必须在一个日期字段中使用 ? 来表示该字段 '不关心'。
如何测试我的 cron 表达式是否正确?
工具的 '下次运行时间' 功能显示从当前日期计算的接下来 5-10 次执行时间。如果这些符合预期,表达式就是正确的。你也可以使用 '验证' 按钮检查语法。对于生产部署,务必先在测试环境中测试。常见错误包括:混淆日期和星期、忘记小时是 24 小时格式、误解步长值。