这个表达式如何工作
表达式 0 0,12 * * * 使用 标准 crontab 语法编写。从左到右逐个字段阅读:每个字段都会进一步限定任务可以运行的时间,当前时间与所有字段都匹配时调度器就会启动任务。用通俗的话说,它的含义是:整点, 每隔 12 小时。
适配你的调度器
crontab、Kubernetes 和 GitHub Actions 使用五字段格式。Quartz 和 Spring 需要在前面加上秒字段,Quartz 和 AWS 还要求两个日期字段之一为“?”——上方表格已经处理好了这些差异。请记住,GitHub Actions 和 AWS EventBridge 规则按 UTC 运行,而 crontab 使用服务器所在时区,因此同一个表达式在不同环境下可能在不同的本地时间触发。
部署前先检查
把最终的表达式粘贴到上方的解析器中,并选择实际运行它的机器所在的时区。接下来运行时间列表会准确显示任务何时启动,包括夏令时切换前后,让你在上线前就发现相差一小时之类的错误。
常见问题
- 每 12 小时的 Cron 表达式是什么?
- 在标准 crontab 中是 0 0,12 * * *。在 Quartz 中是 0 0 0,12 * * ?,在 AWS EventBridge 中是 cron(0 0,12 * * ? *)。
- 它会按哪个时区运行?
- crontab 使用服务器本地时区,Kubernetes 使用控制器时区或 spec.timeZone,GitHub Actions 和 AWS EventBridge 规则使用 UTC。
- 如何测试这个调度?
- 把它粘贴到本页的解析器中:它会显示任意时区下接下来 10 次运行时间,并在旁边显示你的本地时间。
- 可以稍作修改吗?
- 可以。在工具中编辑表达式或使用可视化生成器,文字说明和运行时间会随输入实时更新。