跳到正文
CronExplain

每小时的 Cron 表达式

在第 0 分钟运行的每小时任务是日志轮转、统计汇总和重建搜索索引的经典选择。如果很多任务都在整点运行,可以考虑选一个非整点分钟来分散负载。

各方言中的同一调度

方言表达式
标准 crontab0 * * * *
6 字段(含秒)0 0 * * * *
Quartz0 0 * * * ?
Spring0 0 * * * *
AWS EventBridgecron(0 * * * ? *)
GitHub Actions0 * * * *
Kubernetes CronJob0 * * * *

含义

识别为:标准 crontab · 五个字段:分钟、小时、日、月、星期。星期日为 0 或 7。若“日”和“星期”都有限定,只要其中一个匹配就会运行。

✓ 有效 · 含义

每小时

预设

接下来 10 次运行

#UTC 时间你的本地时间
1——
2——
3——
4——
5——
6——
7——
8——
9——
10——

其他方言中的同一调度

  • Quartz0 0 * * * ?
  • AWS EventBridgecron(0 * * * ? *)EventBridge 规则使用 UTC。
  • Spring0 0 * * * *

可视化生成器

为每个字段选择取值。生成器输出标准的五字段表达式,使用时会自动转换为当前选择的方言。

分钟
小时
日
月
星期
0 9 * * 1-5

这个表达式如何工作

表达式 0 * * * * 使用 标准 crontab 语法编写。从左到右逐个字段阅读:每个字段都会进一步限定任务可以运行的时间,当前时间与所有字段都匹配时调度器就会启动任务。用通俗的话说,它的含义是:每小时。

适配你的调度器

crontab、Kubernetes 和 GitHub Actions 使用五字段格式。Quartz 和 Spring 需要在前面加上秒字段,Quartz 和 AWS 还要求两个日期字段之一为“?”——上方表格已经处理好了这些差异。请记住,GitHub Actions 和 AWS EventBridge 规则按 UTC 运行,而 crontab 使用服务器所在时区,因此同一个表达式在不同环境下可能在不同的本地时间触发。

部署前先检查

把最终的表达式粘贴到上方的解析器中,并选择实际运行它的机器所在的时区。接下来运行时间列表会准确显示任务何时启动,包括夏令时切换前后,让你在上线前就发现相差一小时之类的错误。

常见问题

每小时的 Cron 表达式是什么?
在标准 crontab 中是 0 * * * *。在 Quartz 中是 0 0 * * * ?,在 AWS EventBridge 中是 cron(0 * * * ? *)。
它会按哪个时区运行?
crontab 使用服务器本地时区,Kubernetes 使用控制器时区或 spec.timeZone,GitHub Actions 和 AWS EventBridge 规则使用 UTC。
如何测试这个调度?
把它粘贴到本页的解析器中:它会显示任意时区下接下来 10 次运行时间,并在旁边显示你的本地时间。
可以稍作修改吗?
可以。在工具中编辑表达式或使用可视化生成器,文字说明和运行时间会随输入实时更新。