【问题标题】:Jenkins Build Periodically - ScheduleJenkins 定期构建 - 计划
【发布时间】:2016-11-02 05:32:50
【问题描述】:

我希望每 15 分钟定期构建一次。我在网上查了一下,我正在使用这个时间表:*/15 * * * *

Jenkins 告诉我使用H/15 * * * * 而不是*/15 * * * * 来平均分配负载

有人能告诉我使用H 代替* 的区别吗?

【问题讨论】:

    标签: jenkins jenkins-workflow jenkins-pipeline


    【解决方案1】:

    是的。从构建触发器定期构建计划 → 内联帮助:

    为了允许定期调度的任务在系统上产生均匀的负载,应尽可能使用符号 H(代表“哈希”)。例如,将0 0 * * * 用于十几个日常工作将导致午夜出现大幅峰值。相比之下,使用H H * * * 仍然会每天执行每个作业一次,但不是同时执行一次,更好地使用有限的资源。

    H 符号可以与范围一起使用。例如,H H(0-7) * * * 表示 12:00 AM(午夜)到 7:59 AM 之间的某个时间。您还可以将步长间隔与H 一起使用,带或不带范围。

    H 符号可以被认为是一个范围内的随机值,但它实际上是作业名称的哈希,而不是随机函数,因此该值对于任何给定项目都保持稳定。

    请注意,对于月份字段,由于月份长度可变,*/3H/3 等短周期在大多数月份即将结束时不会始终如一地工作。例如,*/3 将在长月的第 1、4、...31 天运行,然后在下个月的第二天再次运行。哈希值始终在 1-28 范围内选择,因此 H/3 将在月底运行 3 到 6 天之间产生间隔。 (较长的周期也会有不一致的长度,但效果可能相对不太明显。)

    空行和以# 开头的行将作为 cmets 被忽略。

    此外,@yearly@annually@monthly@weekly@daily@midnight@hourly 被支持为方便的别名。这些使用哈希系统进行自动平衡。例如,@hourlyH * * * * 相同,可以表示一小时内的任何时间。 @midnight 实际上是指 12:00 AM 到 2:59 AM 之间的某个时间。

    例子:

    # 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 every weekday (perhaps at 10:38 AM, 12:38 PM, 2:38 PM, 4:38 PM)
    H 9-16/2 * * 1-5
    # once a day on the 1st and 15th of every month except December
    H H 1,15 1-11 *
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-31
      • 1970-01-01
      • 1970-01-01
      • 2013-08-07
      • 1970-01-01
      • 2012-01-07
      相关资源
      最近更新 更多