我在Jenkins中添加了一个新工作,我想定期安排。
从配置作业,我正在检查“定期构建”复选框,并在Schedule文本字段中添加了表达式:
15 13 * * *
但是它没有在预定的时间运行。
这是安排工作的正确程序吗?
该作业应该在4:20 AM运行,但它没有运行。
我在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。 还有一件事,詹金斯为我们提供了一个非常有用的预览。请看截图。
我希望这对你有所帮助。谢谢