我在Jenkins中添加了一个新工作,我想定期安排。
从配置作业,我正在检查“定期构建”复选框,并在Schedule文本字段中添加了表达式:
15 13 * * *
但是它没有在预定的时间运行。
这是安排工作的正确程序吗?
该作业应该在4:20 AM运行,但它没有运行。
我在Jenkins中添加了一个新工作,我想定期安排。
从配置作业,我正在检查“定期构建”复选框,并在Schedule文本字段中添加了表达式:
15 13 * * *
但是它没有在预定的时间运行。
这是安排工作的正确程序吗?
该作业应该在4:20 AM运行,但它没有运行。
当前回答
格式如下:
分钟(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 * *
其他回答
为了每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”的例子
Jenkins允许您多次设置,以换行符分隔。
如果你需要每天早上7点构建,以及每个周日下午4点,下面的工作很好。
H 7 * * *
H 16 * * 0
Jenkins在调度中使用Cron格式。 你可以参考这个链接了解更多信息https://en.wikipedia.org/wiki/Cron。 还有一件事,詹金斯为我们提供了一个非常有用的预览。请看截图。
我希望这对你有所帮助。谢谢
格式如下:
分钟(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 * *