跳到正文
cron.surf

Kubernetes cron 转 Quartz

Kubernetes 的字段是 分 时 日 月 星期;Quartz 的字段是 秒 分 时 日 月 星期 [年]。粘贴表达式即可转换,不能精确对应的部分会标出原因和替代写法。

“在09:00, 星期一至星期五”

目标 · Quartz等价
0 0 9 ? * 2-6
秒在前,周日是 1,一个日期字段必须是 ?。

其他平台上的相同调度

crontab等价
0 9 * * 1-5
按系统时区运行;cronie 还支持 CRON_TZ=。
0 9 * * 1-5
按 UTC 运行,除非条目设置了 timezone:。
cron(0 9 ? * 2-6 *)
cron() 六个字段,一个日期字段必须是 ?。不设时区就是 UTC。
Spring等价
0 0 9 * * 1-5
六个字段,秒在前;设置 zone=,否则用服务器时区。

接下来 10 次运行

在你的浏览器中计算
  1. 计算中…

Kubernetes 与 Quartz 的区别

KubernetesQuartz
字段分 时 日 月 星期秒 分 时 日 月 星期 [年]
周日0(7 会报错)1(SUN=1 … SAT=7)
日和星期都设置时任一满足;只有 * 或 ? 算不限制其中一个必须是 ?
特殊字符无L W # LW L-n
简写@yearly @monthly @weekly @daily @hourly无
时区spec.timeZone,否则控制器时区inTimeZone(),否则 JVM 时区
最短间隔1 分钟1 秒

常用调度转换结果

KubernetesQuartz
每 5 分钟*/5 * * * *0 */5 * * * ?
每小时0 * * * *0 0 * * * ?
每分钟* * * * *0 * * * * ?
每 10 分钟*/10 * * * *0 */10 * * * ?
每 15 分钟*/15 * * * *0 */15 * * * ?
每 30 分钟*/30 * * * *0 */30 * * * ?
每天零点0 0 * * *0 0 0 * * ?
每天早上 9 点0 9 * * *0 0 9 * * ?
工作日早上 9 点0 9 * * 1-50 0 9 ? * 2-6
每周一0 0 * * 10 0 0 ? * 2
每月 1 号0 0 1 * *0 0 0 1 * ?
每 6 小时0 */6 * * *0 0 */6 * * ?
每周日零点0 0 * * 00 0 0 ? * 1
每 2 小时0 */2 * * *0 0 */2 * * ?
每 12 小时0 */12 * * *0 0 */12 * * ?
每天中午 12 点0 12 * * *0 0 12 * * ?
每周五0 0 * * 50 0 0 ? * 6
每季度0 0 1 */3 *0 0 0 1 */3 ?
每 2 分钟*/2 * * * *0 */2 * * * ?
每 3 小时0 */3 * * *0 0 */3 * * ?
每天早上 6 点0 6 * * *0 0 6 * * ?
每天晚上 6 点0 18 * * *0 0 18 * * ?
每天两次0 */12 * * *0 0 */12 * * ?
工作日晚上 6 点0 18 * * 1-50 0 18 ? * 2-6
周末上午 10 点0 10 * * 0,60 0 10 ? * 1,7
每月 15 号0 0 15 * *0 0 0 15 * ?
每年一次0 0 1 1 *0 0 0 1 1 ?
每 3 分钟*/3 * * * *0 */3 * * * ?
每 20 分钟*/20 * * * *0 */20 * * * ?
每 4 小时0 */4 * * *0 0 */4 * * ?
每 8 小时0 */8 * * *0 0 */8 * * ?
每天凌晨 1 点0 1 * * *0 0 1 * * ?
每天凌晨 2 点0 2 * * *0 0 2 * * ?
每天凌晨 3 点0 3 * * *0 0 3 * * ?
每天早上 8 点0 8 * * *0 0 8 * * ?
每个工作日0 0 * * 1-50 0 0 ? * 2-6
每个周末0 0 * * 0,60 0 0 ? * 1,7
每周二0 0 * * 20 0 0 ? * 3
每周三0 0 * * 30 0 0 ? * 4
每周四0 0 * * 40 0 0 ? * 5
每周六0 0 * * 60 0 0 ? * 7
每 6 个月0 0 1 */6 *0 0 0 1 */6 ?

常见问题

所有 Kubernetes 表达式都能转成 Quartz 吗?

本页 42 个常用调度全部可以等价转换。用到 Quartz 没有的特殊字符时仍会标出来。

Kubernetes 和 Quartz 里周日怎么写?

Kubernetes:0(7 会报错)。Quartz:1(SUN=1 … SAT=7)。

时区会一起转过去吗?

表达式本身不带时区。Kubernetes:spec.timeZone,否则控制器时区。Quartz:inTimeZone(),否则 JVM 时区。