跳转至

触发器触发流水线

为流水线配置触发器,周期性地自动触发流水线的执行。在编辑流水线时点击编辑配置,即可配置构建触发器。

trigger01

触发器类型

触发器类型 说明
代码源触发器 在指定的时间检查代码仓库是否有变更。例如填写 H/15 * * * * 表示每隔 15 分钟系统会自动检查代码仓库是否有新提交的变更,若有新提交的变更则会执行流水线。
定时触发器 在指定的时间触发流水线,开启定时触发器后,支持直接选择预设的规则,也可以选择自定义 CRON 表达式,输入自定义触发器规则。

触发规则

触发规则语法遵循 CRON 的语法(但有细微差别)。具体来说,每行由 5 个 Tab 或空格分隔的字段组成:MINUTE HOUR DOM MONTH DOW

字段 说明 取值范围
MINUTE 分钟 0 ~ 59
HOUR 小时 0 ~ 23
DOM 1 ~ 31
MONTH 1 ~ 12
DOW 星期 1 ~ 6 代表周一至周六,0、7 代表周日

要为一个字段指定多个值,可以按照优先顺序使用以下运算符:

运算符 说明
* 表示匹配取值范围内的所有值
M-N 表示指定范围内的所有值
M-N/X 或 */X 表示在指定范围或整个有效范围内每隔 X 触发一次
A,B,...,Z 表示匹配多个值

为了使定期调度的任务在系统上产生均匀的负载,应尽可能使用符号 H(代表“哈希”)。 例如,对十几个日常工作使用 0 0 * * * 将导致午夜时出现较大的峰值,可能会导致资源紧张。 相比之下,使用 H H * * * 仍然会每天执行一次每个作业,但不是同时执行一次,这样能够更好地使用有限的资源。

H 可以与范围一起使用。例如,H H(0-7) * * * 表示 00:00 到 7:59 之间的某个时间。

由于不同的月份天数不同,所以当 DOM 中出现 /3H/3 等短周期时,在大多数月份结束时不会触发。 例如,*/3 将在每个月的第 1 天、第 4 天、……、第 31 天触发任务。如果下个月有 30 天,最后一次触发任务的时间为第 28 天。

另外,@yearly@annually@monthly@weekly@daily@midnight@hourly 作为方便的别名。 这些使用哈希进行自动匹配。例如,@hourlyH * * * * 相同,可以表示一小时内的任何时间。 @midnight 代表每天 0:00 ~ 2:59 之间的一段时间。

规则举例

规则 说明
H/15 * * * * 表示每隔 15 分钟触发一次,例如每小时的 07 分、22 分、37 分和 52 分
H(0-29)/10 * * * * 表示在每个小时的前半小时中,每 10 分钟触发一次,例如每小时的 04 分、14 分和 24 分
45 9-16/2 * * 1-5 表示每个工作日从 9 点 45 分开始下午 15 点 45 分结束,每隔 2 小时,在第 45 分钟触发一次
H H(8-15)/2 * * 1-5 表示每个工作日从 8 点到 16 点这段时间内,每隔 2 小时之间的某刻触发一次,例如在 9:38、11:38、13:38、15:38
H H 1,15 1-11 表示每月 1 日和 15 日每天一次,除 12 月外

评论