使用“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

而不是 h-full 有一个函数可以使它 h-section 满

包括 .cpp 而不是 header(.h)

我希望我的 Django 项目使用 Python 2.7 而不是 2.6.8