我该如何安排 Jenkins 构建任务,使其每天只能在特定的几个小时进行构建呢?
例如,每天下午 4 点开始。
0 16 1-7 * *
我理解为"每个月的星期一至星期日下午4点整点开始,从0分钟开始",但它却每分钟执行一次 :(
感谢任何建议。谢谢!
我刚试图让一个工作在下午4:42启动(我的大致当地时间),并且使用以下方法成功了,虽然要多等约30秒:该字段遵循cron的语法(存在一些小差异)。具体而言,每行由TAB或空格分隔的5个字段组成:分钟 小时 DOM 月份 DOW
42 16 * * *
如果你想要多次执行,我认为以下代码应该可以实现:
0 16,18,20,22 * * *
每天下午4点、6点、8点和10点。在作业配置中,可以定义各种构建触发器。使用定期构建,您可以通过定义日期或每周的某一天和执行构建的时间来安排构建。
格式如下:
分钟 (0-59), 小时 (0-23), 日 (1-31), 月份(1-12), 星期几(0-6)
可以插入表示单词Hash的字母H代替任意值,它将根据项目名称的哈希代码计算参数。这样,如果您同时在构建机器上构建多个项目,每天在午夜构建,它们不会同时开始构建执行,每个项目在不同的分钟开始执行,具体取决于其哈希码。您还可以指定值介于数字之间,例如H(0,30)将返回范围为0-30的可能哈希的项目哈希代码。
示例:
每天早上8:30开始构建,周一至周五:
平日每天构建两次,在中午12:00和午夜00:00,星期天至星期四:
每天在下午晚些时候开始构建,在下午4:00 p.m. - 4:59 p.m.或16:00 -16:59之间,具体取决于项目的哈希:
在午夜开始构建:
或者每个星期六在午夜开始构建:
1-6
是周一到周五吗?不应该是 1-5
吗?等等。 - vikingsteve这个例子是每天两次,大约在早上9点和下午5点(根据评论进行了编辑)。
H 9,17 * * *
@midnight
注意:在计划字段下方可以看到上次和下次运行的日期时间。
Jenkins还支持预定义别名以安排构建:
@hourly
, @daily
, @weekly
, @monthly
, @midnight
@hourly
--> 每小时开始时构建 --> 0 * * * *
@daily, @midnight
--> 每天午夜构建 --> 0 0 * * *
@weekly
--> 在星期日凌晨零点构建每周--> 0 0 * * 0
@monthly
--> 在每月第一天午夜构建--> 0 0 1 * *
H H(5-21)/2 * * 1-5
每周一至周五每两个小时构建一次
分钟(0-59) 小时(0-23) 日(1-7) 月(1-12) 星期几