我在詹金斯(Jenkins)添加了一份新工作,我想定期安排它。
在“ 配置作业”中,我选中“定期构建”复选框,并在“ 计划”文本字段中添加了表达式:
15 13 * * *
但是它不会在计划的时间运行。
安排工作是正确的程序吗?
该作业应在4:20 AM运行,但未运行。
我在詹金斯(Jenkins)添加了一份新工作,我想定期安排它。
在“ 配置作业”中,我选中“定期构建”复选框,并在“ 计划”文本字段中添加了表达式:
15 13 * * *
但是它不会在计划的时间运行。
安排工作是正确的程序吗?
该作业应在4:20 AM运行,但未运行。
Answers:
通过将计划时间设置为 15 13 * * *
您可以告诉Jenkins在每年的第13个小时的第15分钟安排每年的每个月的每天。
Jenkins使用了cron表达式,不同的字段是:
如果您想每5分钟安排一次构建,就可以完成此工作: */5 * * * *
如果您想每天在8h00安排构建,这将完成工作: 0 8 * * *
对于过去的几个版本(2014年),Jenkins有一个新参数H
(摘自Jenkins代码文档):
为了使定期计划的任务在系统上产生均匀的负载,
H
应尽可能使用符号(“哈希”)。例如,使用
0 0 * * *
一打日常工作将在午夜引起大量的高峰。相反,使用H H * * *
仍然会每天执行一次每个作业,但不是同时执行所有作业,更好地使用有限的资源。
另请注意:
该
H
符号可以被认为是在一定范围内的随机值,但它实际上是作业名称,而不是随机函数的哈希值,所以该值仍然是任何项目稳定。
* */6 * * *
是否行得通呢?
*/5 * * * *
表示每5分钟
5 * * * *
表示每小时的第5分钟
格式如下:
分钟(0-59),小时(0-23),DAY(1-31),MONTH(1-12),星期几(0-6)
可以插入代表单词Hash的字母H 来代替任何值。它将基于项目名称的哈希码计算参数。
这样一来,如果您要同时在构建机器上构建多个项目,比如说每天午夜,那么它们就不会全部同时开始执行构建。每个项目都根据其哈希码在不同的分钟开始执行。
您也可以指定该值在数字之间,即H(0,30)将返回项目的哈希码,其中可能的哈希值为0-30。
例子:
每天在星期一至星期五的上午08:30开始构建:30 08 * * 1-5
平日每天创建两次,午餐时间12:00和午夜00:00,星期日至星期四:00 0,12 * * 0-4
每天下午4:00 PM-4:59 pm或16:00 -16:59之间的每天开始构建,具体取决于项目哈希:H 16 * * 1-5
在午夜开始构建:@午夜或在每个星期六的午夜开始构建:59 23 * * 6
每月的每个凌晨2:00到凌晨02:30:H(0,30)02 01 * *
詹金斯计划作业的步骤:
@midnight
注意:在计划字段下,可以查看上次和下一个日期时间运行。
Jenkins还支持预定义别名以计划构建:
@hourly
,@daily
,@weekly
,@monthly
,@midnight
@hourly
->在每小时开始时每小时进行一次构建-> 0 * * * *
@daily, @midnight
->每天在午夜建立-> 0 0 * * *
@weekly
->每周在周日上午的午夜进行构建-> 0 0 * * 0
@monthly
->每个月的第一天的午夜进行构建-> 0 0 1 * *
要每5分钟安排一次cron作业,您需要定义cron设置,如下所示:
*/5 * * * *
Jenkins在计划中使用Cron格式。您可以参考此链接以获取更多详细信息https://en.wikipedia.org/wiki/Cron。还有一件事,詹金斯为我们提供了非常有用的预览。请看截图。
希望对您有所帮助。谢谢