我是詹金斯的新手。我有一份工作,我需要每1小时安排一次。
我在用
* */1 * * *
但是它没有有效地工作。
请提供其他解决方案。
@hourly
或0 * * * *
我是詹金斯的新手。我有一份工作,我需要每1小时安排一次。
我在用
* */1 * * *
但是它没有有效地工作。
请提供其他解决方案。
@hourly
或0 * * * *
Answers:
詹金斯使用cron表达式作为解释这里
要安排每个小时,那么您可以
0 * * * *
然后您的工作将每小时执行一次(07:00、08:00、09:00等)
更新
作为原始配置的解释,语法
* */1 * * *
将每分钟执行一次工作。
更新2
根据注释中的要求,此处为每3小时安排一次的语法
0 */3 * * *
语法*/n
意味着作业将n
每小时排定
詹金斯建议这样:
H * * * *
H
而不是硬编码值
我知道这是一个老话题,但我正在回答,因为显然人们仍然落在这里。
最佳答案不应该再使用了。
詹金斯提出了一种价值H
。
该字段遵循cron的语法(略有不同)。具体来说,每行包含5个由TAB或空格分隔的字段:
分钟小时DOM每月
- MINUTE一小时内的分钟数(0–59)
- HOUR一天中的小时(0–23)
- DOM每月的一天(1-31)
- 月月(1–12)
- DOW星期几(0–7),其中0和7是星期日。
要为一个字段指定多个值,可以使用以下运算符。按照优先顺序
*
指定所有有效值M-N
指定值范围M-N/X
或*/X
按X的间隔逐步达到指定范围或整个有效范围A,B,...,Z
枚举多个值为了使定期计划的任务在系统上产生均匀的负载,应尽可能使用符号H(“哈希”)。例如,将0 0 * * *用于一打日常工作,将导致午夜时分大幅增加。相比之下,使用HH * * *仍将每天执行一次作业,但并非同时执行所有作业,更好地使用有限的资源。
H符号可以与范围一起使用。例如,HH(0-7)* * *表示介于12:00 AM(午夜)至7:59 AM之间的某个时间。您还可以将步长间隔与H配合使用,无论有无范围。
可以将H符号视为某个范围内的随机值,但实际上它是作业名称的哈希,而不是随机函数,因此该值对于任何给定项目均保持稳定。
请注意,对于月的日字段,由于月份长度的变化,诸如* / 3或H / 3之类的短周期在大多数月份的末尾将无法始终如一地工作。例如,* / 3将在一个月的第一天,第四天,…31天运行,然后在下个月的第二天再次运行。哈希值总是选择在1-28范围内,因此H / 3会在一个月底的3到6天之间产生间隔。(较长的周期也将具有不一致的长度,但效果可能相对不太明显。)
因此,每小时建造一次的正确答案是
H * * * *
每3小时
H H/3 * * *
*
和之间的区别H
也可以解释为
*
转换为每个H
转换为任何所以例如
* * * * *
转换为:每月的每一分钟,每小时,每个月,每个月构建,与星期几无关。
H * * * *
转换为:每小时(x)一次构建,确切的分钟数无关紧要(可以是x:00和x:59之间的任何分钟)
H H * * *
转换为:每天构建一次,与时间无关(可以是00:00到23:59之间的任何分钟和任何时间)
H
前面也解释了为什么您更喜欢使用而不是硬编码的时间值的原因
如果您配置了100个作业,
0 0 * * *
他们都会尝试同时开始,例如导致大量民意调查,并在午夜吸引流量。
如果您有它们,则全部配置为
H H * * *
它们将每天建造一次,但并非全部同时建造,而是全天分布。
您可以比使用时间范围更好地计划时间表,例如
H H(18-23) * * *
所有工作将在每天18:00至23:59之间的任何时间建立。
甚至还可以安排午夜时分的工作,例如在19:00 pm和5:00 am之间进行建造。
但是,由于cron通常不允许这样做,因此您可以使用带时区的技巧。
例如,我居住在GMT + 1时区MEZ,我想在19:00 pm至5:00 am之间建立所有工作。为了做到这一点,我使用将我的完整时区偏移了5个小时
TZ=Etc/GMT+6
比起我在14:00(-> +5 = 19:00 pm)到23:59(-> +5 = 4:59 am)结束的小时数,我使用了一个排档范围
H H(14-23) * * *
* */1 * * *
是正确的,它每小时运行一次
尝试使用H函数,以便所有作业不会同时轮询SVN
H H/1 * * *
它应该做魔术。如果作业需要更多时间才能完成,或者您正在执行构建触发器功能。要么增加时间,要么使用jenkins pluggin停止构建,直到先前的构建完成为止。
https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin
* * * * *
=>每分钟运行一次。对于在一定范围内的跑步,您可以像* 1-2 * * *
<-这样在1:00 am到1:59 am之间每分钟运行一次
* * 1-2 * *
?
* 1-2 * * *
。第一个位置为Minute of our
,第二个位置为hour of day
,第三个day of month
,第四month of year
和第五个day of week
(在特殊情况下,它也允许第六个year
)。因此,您的* * 1-2 * *
翻译行会翻译为“每分钟,每小时,每月的第一天和第二天以及一周中的任何一天
*
翻译为every
而H
翻译为any
。因此,虽然* * * * *
意味着每分钟,但是H * * * *
意味着每小时构建一次,但是我不在乎确切的分钟(如果没有由范围定义,则可以在0-59之间的任何位置),并且H H * * *
意味着每天构建一次,但是我不在乎什么时间。
语法为:
MINUTE Minutes within the hour (0-59)
HOUR The hour of the day (0-23)
DOM The day of the month (1-31)
MONTH The month (1-12)
DOW The day of the week (0-7) where 0 and 7 are Sunday.
如果要每3小时进行一次排程,语法应为:
* 3 * * * *