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

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

15 13 * * *

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

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

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


当前回答

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

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

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

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

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

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

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

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

Every fifteen minutes (perhaps at :07, :22, :37, :52): H/15 * * * * Every ten minutes in the first half of every hour (three times, perhaps at :04, :14, :24): H(0-29)/10 * * * * Once every two hours at 45 minutes past the hour starting at 9:45 AM and finishing at 3:45 PM every weekday: 45 9-16/2 * * 1-5 Once in every two hour slot between 8 AM and 4 PM every weekday (perhaps at 9:38 AM, 11:38 AM, 1:38 PM, 3:38 PM): H H(8-15)/2 * * 1-5 Once a day on the 1st and 15th of every month except December: H H 1,15 1-11 *

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

表格截图

其他回答

通过将计划周期设置为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”的例子

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

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

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

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

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

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

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

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

Every fifteen minutes (perhaps at :07, :22, :37, :52): H/15 * * * * Every ten minutes in the first half of every hour (three times, perhaps at :04, :14, :24): H(0-29)/10 * * * * Once every two hours at 45 minutes past the hour starting at 9:45 AM and finishing at 3:45 PM every weekday: 45 9-16/2 * * 1-5 Once in every two hour slot between 8 AM and 4 PM every weekday (perhaps at 9:38 AM, 11:38 AM, 1:38 PM, 3:38 PM): H H(8-15)/2 * * 1-5 Once a day on the 1st and 15th of every month except December: H H 1,15 1-11 *

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

表格截图

在Jenkins中调度作业的步骤:

点击职位要求的“配置” 向下滚动到“构建触发器”-副标题 定期单击“生成”的复选框 在schedule字段中添加时间计划,例如:@midnight

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

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

@每小时,@每天,@每周,@每月,@午夜

@hour——>每小时开始构建一次——> 0 * * * *

@daily, @midnight——>每天午夜——> 0 0 * * *

@weekly ->每周在周日早上午夜进行构建-> 0 0 * * 0

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

另一个例子,如何只在一周的某一天运行:

# Every Sunday at 19:00

0  19  *  *  0

最后的数字是星期几,如下表所示:

0 = Sunday
1 = Monday
2 = Tuesday
3 = Wednesday
4 = Thursday
5 = Friday
6 = Saturday

如果你想知道一周有多少天,你可以这样加逗号:

# Monday, Wednesday and Friday:

0  19  *  *  1,3,5

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

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

H 7 * * *

H 16 * * 0

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

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