我如何安排在詹金斯的工作?

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

配置工作开始,我检查了“定期构建”复选框,并在时间表文本字段中添加了表达式:

15 13 * * *

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

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

Enter image description here

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

926664 次浏览

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

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

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

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

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

对于过去的几个版本(2014),Jenkins有了一个新参数H(从Jenkins代码文档中提取):

为了允许定期调度的任务在系统上产生均匀的负载,应该尽可能使用符号H(表示“散列”)。

例如,对十几个日常作业使用0 0 * * *将在午夜导致一个很大的峰值。相比之下,使用H H * * *仍然会每天执行一次每个作业,但不是同时执行所有作业,更好地使用有限的资源。

还要注意:

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

更多使用'H'的例子

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

*/5 * * * *

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

*/5 * * * *表示每5分钟

5 * * * *表示每小时的第5分钟

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

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

H 7 * * *


H 16 * * 0

格式如下:

分钟(0-59),小时(0-23),天(1-31),月(1-12),星期(0-6)

可以插入代表单词哈希的字母H,而不是任何值。它将根据项目名称的哈希码计算参数。

这样,如果您同时在构建机器上构建多个项目,比如每天午夜,它们不会同时开始构建执行。每个项目根据其哈希代码在不同的分钟开始执行。

你也可以将值指定在数字之间,例如H(0,30)将返回项目的哈希码,其中可能的哈希值为0-30。

例子:

  1. 每天早上08:30开始构建,周一-周五:30 08 * * 1-5

  2. 工作日每天建两次,午餐时间12:00和午夜00:00,周日至周四:00 0,12 * * 0-4

  3. 根据项目哈希值,每天下午4:00 - 4:59或16:00 -16:59之间开始构建:H 16 * * 1-5

  4. 在午夜开始构建:@midnight或在午夜开始构建,每周六:59 23 * * 6

  5. 每个月的第一天凌晨2:00 - 02:30之间:H(0,30) 02 01 * *

Jenkins在调度中使用Cron格式。 你可以参考这个链接了解更多信息https://en.wikipedia.org/wiki/Cron。 还有一件事,詹金斯为我们提供了一个非常有用的预览。请看截图。 enter image description here < / p >

我希望这对你有所帮助。谢谢

在Jenkins中安排工作的步骤:

  1. 点击工作要求的“Configure"
  2. 向下滚动到&;建立触发器"——副标题
  3. 单击建立定期的复选框
  4. 在schedule字段中添加时间计划,例如:@midnight

enter image description here

请注意:在schedule字段下,可以看到最后和下一个日期-时间运行。

Jenkins还支持预定义的别名来调度构建:

__abc0, __abc1, __abc2, __abc3, __abc4

@hourly——比;每一小时都要在每一小时的开始建立起来——>0 * * * *

@daily, @midnight——比;每天午夜构筑——>0 0 * * *

@weekly——比;每周在周日早上午夜建造——>0 0 * * 0

@monthly——比;每个月的第一天午夜建造——>0 0 1 * *

试试这个。

20 4 * * *

查看下面的截图

enter image description here

引用URL - https://www.lenar.io/jenkins-schedule-build-periodically/

Jenkins作业调度语法 首先,让我们看看Jenkins作业调度配置。它看起来很像Linux的cron语法,但你不必熟悉Linux命令行就能弄清楚

调度项由五个空格分隔的字段组成。通过添加多个条目,可以将作业调度一次以上。

截图Jenkins Schedules 每个字段可以包含一个精确的值或使用一组特殊表达式:

熟悉的星号*表示所有有效值。因此,每天运行的作业在第三个字段中有一个*。

破折号分隔值的范围。例如,从上午9:00到下午5:00每小时运行一次的作业在第二个字段中会有9-17。

间隔用斜杠/指定。每15分钟运行一次的作业在第一个字段中有H/15。请注意,第一个字段中的H具有特殊含义。如果希望作业每15分钟运行一次,可以将其配置为0/15,这将使作业在每小时开始时运行一次。但是,如果以这种方式配置了太多作业,就会使Jenkins控制器过载。最后,H告诉Jenkins根据作业名称的散列选择一分钟。

最后,可以用逗号指定多个值。因此,在周一、周三和周五运行的作业将在第五个字段中有1,3,5。

Jenkins在他们的帮助部分提供了一些调度示例。

每隔15分钟(可能在:07,:22,:37,:52):

H/15 * * * *

每小时上半小时每十分钟(三次, 也许在:04,:14,:24):

H(0-29)/10 * * * *

从上午9:45开始,整点45分,每两个小时一次 每个工作日下午3:45结束:

45 9-16/2 * * 1-5

每个工作日上午8点到下午4点之间每两个小时播放一次 (可能在9:38 AM, 11:38 AM, 1:38 PM, 3:38 PM):

H H(8-15)/2 * * 1-5

除12月外,每月1日、15日每天一次:

H H 1,15 1-11 *

Jenkins还有一组别名,可以更容易地使用公共间隔。

Jenkins Aliases的截图