我是 Jenkins 新手。我有一份工作需要每小时安排一次。
我在用
* */1 * * *
但其效果并不明显。
请提供任何其他解决方案。
答案1
Jenkins 使用 cron 表达式如下所述这里
要安排每小时,那么你可以把
0 * * * *
那么你的工作将每小时执行一次(07:00、08:00、09:00 等)
更新
正如您原始配置的解释,语法
* */1 * * *
每分钟将执行一次作业。
更新2
根据评论中的要求,这里每 3 小时安排一次的语法
0 */3 * * *
语法*/n
意味着作业将每小时安排n
一次
答案2
詹金斯建议这样:
H * * * *
答案3
我知道这是一个老话题,但我还是要回答,因为显然人们仍然在这里。
最佳答案不应再使用。
詹金斯引入了一个价值观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 将在长月的 1 日、4 日、……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 到凌晨 5:00 之间进行构建。
但由于 cron 通常不允许这样做,因此您可以使用使用 shiftet 时区的技巧。
例如,我住在时区 MEZ,即 GMT+1,我想在晚上 19:00 到凌晨 5:00 之间构建所有作业。为了做到这一点,我使用以下方法将整个时区移动 5 小时
TZ=Etc/GMT+6
然后我使用 shiftet 范围来表示从 14:00 (-> +5 = 19:00pm) 开始到 23:59 (-> +5 = 4:59am) 结束的时间
H H(14-23) * * *
答案4
语法是:
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 * * * *