巡检调度字段使用 Crontab 表达式,允许在分钟、小时、天、月、周、年等维度上精确定义触发时间。
由于 Kubernetes 运行在 UTC(协调世界时)时区,当您设置定时任务的触发规则时,需要先将本地时间(例如北京时间)转换为 UTC 时间,再将 UTC 时间转换为 Crontab 表达式。
时间转换规则:本地时间 - 时区差 = UTC
以北京时间转 UTC 时间为例:
北京处于 UTC+8 时区,因此北京时间与 UTC 的时差为 8 小时,时间转换规则为:
北京时间 - 8 = UTC
示例 1:北京时间 9:42 转换为 UTC 时间:42 09 - 00 08 = 42 01,表示 UTC 时间为凌晨 01:42 。
示例 2:北京时间凌晨 4:32 转换为 UTC 时间:32 04 - 00 08 = -68 03。若为负数,表示前一天,需要再转换一次:-68 03 + 00 24 = 32 20,表示 UTC 时间为前一天晚上 20:32 。
基本格式:分钟 小时 天 月 星期
取值范围
| 分钟 | 小时 | 天 | 月份 | 星期 |
|---|---|---|---|---|
| [0-59] | [0-23] | [1-31] | [1-12] 或 [JAN-DEC] | [1-7] 或 [SUN-SAT] |
minutes、hours、days、months 和 weeks 字段支持以下特殊字符:
,:列表分隔符,用于指定多个值。例如:1,2,5,7,8,9。-:用户自定义的值范围。例如:2-4,表示 2、3、4。*:表示整个时间段。例如在分钟字段中表示每分钟。/:用于指定增量值。例如:n/m 表示从 n 开始,每次递增 m。可参考在线转换工具 Crontab.guru。
常见示例:
输入 30 18 25 12 * 表示任务将在 12 月 25 日 18:30:00 触发。
输入 30 18 25 * 6 表示任务将在每月 25 日及每周六的 18:30:00 触发。
输入 30 18 * * 6 表示任务将在每周六的 18:30:00 触发。
输入 * 18 * * * 表示从最近的 18:00:00 起,任务每分钟触发一次(包括 18:00:00 )。
输入 0 18 1,10,22 * * 表示任务将在每月的 1 日、10 日和 22 日的 18:00:00 触发。
输入 0,30 18-23 * * * 表示任务将在每天 18:00 至 23:00 之间的每小时的 0 分和 30 分触发。
输入 * */1 * * * 表示任务每分钟触发一次。
输入 * 2-7/1 * * * 表示任务将在每天凌晨 2 点至 7 点之间每分钟触发一次。
输入 0 11 4 * mon-wed 表示任务将在每月 4 日及每周一至周三的 11:00 触发。