我在Jenkins中添加了一个新工作,我想定期安排。

从配置作业,我正在检查“定期构建”复选框,并在Schedule文本字段中添加了表达式:

15 13 * * *

但是它没有在预定的时间运行。

这是安排工作的正确程序吗?

该作业应该在4:20 AM运行,但它没有运行。


当前回答

Jenkins允许您多次设置,以换行符分隔。

如果你需要每天早上7点构建,以及每个周日下午4点,下面的工作很好。

H 7 * * *

H 16 * * 0

其他回答

为了每5分钟调度一次cron作业,你需要像这样定义cron设置:

*/5 * * * *

通过将计划周期设置为15 13 * * *,您告诉Jenkins在每年每个月的每一天的第13个小时的第15分钟安排构建。

Jenkins使用了一个cron表达式,不同的字段是:

每小时分钟数(0-59) 一天中的小时数(0-23) Day month每月中的第几天(1-31) MONTH一年中的月份(1-12) DAYWEEK星期几(0-7),其中0和7代表星期日

如果你想每5分钟安排一次构建,这将完成工作:*/5 * * * *

如果你想把你的构建安排在每天的8h00,这将完成工作:0 8 * * *

在过去的几个版本中(2014),Jenkins有了一个新的参数H(摘自Jenkins代码文档):

为了允许定期计划的任务在系统上产生均匀的负载,应该尽可能使用符号H(表示“散列”)。 例如,在12个日常工作中使用0 0 * * *将在午夜导致一个很大的峰值。相比之下,使用H H * * *仍然会每天执行一次每个作业,但不是同时执行所有作业,更好地使用有限的资源。

还要注意:

符号H可以被认为是一个范围内的随机值,但它实际上是作业名称的散列,而不是随机函数,因此对于任何给定的项目,该值都保持稳定。

更多使用“H”的例子

试试这个。

20 4 * * *

查看下面的截图

参考网址- https://www.lenar.io/jenkins-schedule-build-periodically/

尝试使用0 8 * * *。应该可以

格式如下:

分钟(0-59),小时(0-23),天(1-31),月(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 - 4:59或16:00 -16:59之间开始构建,具体取决于项目哈希值:H 16 * * 1-5 开始构建在午夜:@午夜或开始构建在午夜,每周六:59 23 * * 6 每个月的第一天凌晨2:00 - 02:30:H(0,30) 02 01 * *