使用“H * * * *”而不是“5 * * * *”来均匀分布负载
Posted
技术标签:
【中文标题】使用“H * * * *”而不是“5 * * * *”来均匀分布负载【英文标题】:Spread load evenly by using ‘H * * * *’ rather than ‘5 * * * *’ 【发布时间】:2014-12-10 14:27:56 【问题描述】:在设置 Jenkins 应如何从颠覆中提取更改时
我尝试检查 Poll SCM 并将时间表设置为 5 * * * *
,我收到以下警告
我不确定 H 在这种情况下是什么意思以及为什么要使用它。
【问题讨论】:
【参考方案1】:H代表哈希
允许定期安排的任务在 系统中,应尽可能使用符号 H(表示“散列”)。 例如,对十几个日常工作使用 0 0 * * * 将导致大量 午夜的峰值。相反,使用 H H * * * 仍然会执行 每个工作每天一次,但不是同时进行,更好地使用 资源有限。
【讨论】:
@CédricJulien 在这里也很好地解释了:***.com/a/12472740/1579667 它应该允许您设置一个窗口(不早于此,不晚于此)。如果你设置了一个准确的时间,它应该在准确的时间运行它。 @AlexanderMills 确实如此:H 符号可以与范围一起使用。例如,H H(0-7) * * * 表示 12:00 AM(午夜)到 7:59 AM 之间的某个时间。您还可以使用带 H 的步进间隔,带或不带范围。 那么符号H就像一个随机整数?我也不太清楚“hash”的含义。【参考方案2】:单击您的日程安排说明旁边的问号。 上面写着:
允许定期安排的任务在 系统中,应尽可能使用符号 H(表示“散列”)。 例如,对十几个日常工作使用 0 0 * * * 将导致大量 午夜的峰值。相反,使用 H H * * * 仍然会执行 每个工作每天一次,但不是同时进行,更好地使用 资源有限。
【讨论】:
【参考方案3】:另外在文档中值得注意的是:
H 符号可以与范围一起使用。例如,H H(0-7) * * * 表示 12:00 AM(午夜)到 7:59 AM 之间的某个时间。您还可以使用带 H 的步进间隔,带或不带范围。
H 符号可以被认为是一个范围内的随机值,但它实际上是作业名称的哈希,而不是随机函数,因此对于任何给定项目,该值都保持稳定。
【讨论】:
以上是关于使用“H * * * *”而不是“5 * * * *”来均匀分布负载的主要内容,如果未能解决你的问题,请参考以下文章
为啥我们使用 `#include "stdafx.h"` 而不是 `#include <stdafx.h>`?
创建新的 C++ 类时如何使 XCode 使用 .hpp 标头而不是 .h?
绑定到 Integer 属性的 h:inputText 正在提交值 0 而不是 null