Jenkins如何建立时间表?


68

如何安排Jenkins构建,使其只能在每天的特定时间构建?

例如从下午4点开始

0 16 1-7 * *

我的理解是:每个月的星期一至星期日下午4点为0分钟,但是每分钟都会生成一次:(

如有任何建议,我将不胜感激。谢谢!


一个人实际输入到哪里来安排工作?
brodie31k 2012年

Answers:


100

请阅读其他答案和评论,这里有更多的信息和所描述的细微差别(哈希函数?),我在回答此问题时不知道。

根据詹金斯自己对计划任务的帮助(“?”按钮),指定了5个字段:

该字段遵循cron的语法(略有不同)。具体来说,每行包含5个用TAB或空格分隔的字段:MINUTE HOUR DOM MONTH DOW

我只是试着找一份工作在下午4:42(我的当地时间)启动,并与以下方法一起工作,尽管花了大约30秒的额外时间:

42 16 * * *

如果您想多次,我认为以下方法应该有效:

0 16,18,20,22 * * *

每天下午4点,6点,8点和10点。


是的,太多的星星。我的问题不好。我会解决我的话题。
死鱼2011年

嗨,Michal,您是否在安排方面遇到麻烦?您接受了我的回答,但您的评论仅涉及解决问题,我认为您已经完成了。谢谢。
Zach Young

80

在作业配置中,可以定义各种构建触发器。使用定期构建,您可以通过定义星期几或星期几以及执行构建的时间来计划构建。

格式如下:

分钟(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每天开始构建:

  • 高16 * * 1-5

在午夜开始构建:

  • @午夜

或在每个星期六的午夜开始构建:

  • 59 23 * * 6

每月的每个凌晨2:00到02:30之间:

  • H(0-30)02 01 * *

有关CRON表达式的更多信息


我认为每天下午4:00 PM-4:59 pm或16:00 -16:59之间的下午开始构建,具体取决于项目哈希值:应该为H 16 * * *(不是H 16 * * 1-5)
user836846 '16

2
谢谢,但是您确定1-6星期一至星期五吗?是不是1-5?等
vikingsteve

1
如果1-6是周一至周六,则0-5应该是周日-周五。+1提供了许多有用的示例。
inaitgaJ

1
更正:H(0,30)02 01 * *应为H(0-30)02 01 * *
Sander de Jong

11

这个例子是每天一次,大约在上午9点左右,一次在下午5点左右。(根据评论编辑)。

H 9,17 * * * 

6
不完全是。该过程将在9:00 am至9:59 am之间运行一次,再在5:00 pm至5:59 pm之间运行一次。
egrunin

3
为了更准确:这个工作将开始9:00 9:59点之间一次,并启动一次下午5:00和下午5点59之间。如果需要更长的时间,该作业将不会终止。
Stephan Schielke 2014年

3
请注意,“将在0900和0959之间运行一次”:H代表“哈希”-这是基于项目的哈希,因此该项目将始终在第9小时和第17小时的同一分钟运行。如果散列算法为您的项目生成数“16”,那么你的项目作业将始终在开始和0916 1716
DrUseful

4

要在例如下午4点到下午6点之间每天构建一次,您可以使用

HH(15-17)* * *



3

詹金斯计划作业的步骤:

  1. 点击工作要求的“配置”
  2. 向下滚动到“构建触发器”-字幕
  3. 定期单击Build的复选框
  4. 在“时间表”字段中添加时间表,例如, @midnight

在此处输入图片说明

注意:在计划字段下,可以看到上次和下一次日期时间运行。

Jenkins还支持预定义别名以计划构建:

@hourly@daily@weekly@monthly@midnight

@hourly ->在每小时开始时每小时进行一次构建-> 0 * * * *

@daily, @midnight ->每天在午夜建立-> 0 0 * * *

@weekly ->每个星期天早上午夜进行构建-> 0 0 * * 0

@monthly ->每个月的第一天的午夜进行构建-> 0 0 1 * *



1

在Jenkins中,我们的格式为:

分钟(0-59)小时(0-23)天(1-7)月(1-12)星期几



0

周一至周日下午4点尝试此操作

0 16 * * *

您可以检查在Jenkins下的“定期构建”中进行配置时显示的描述消息。(请参阅下面给出的屏幕截图)

“上次运行时间为IST的2019年11月17日(星期日)下午;下一次运行时间为IST的2019年11月18日(星期一)下午。”

屏幕截图

在此处输入图片说明

的时间“周一,二零一九年十一月十八日4:00:05 PM IST”指的是我们当前的系统秒。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.