'5 * * **'ではなく 'H * * * *'を使用して、負荷を均等に分散します


91

JenkinsがSubversionからプルを変更する方法を設定するときに、Poll SCMをチェックして、スケジュールをに設定してみました。 5 * * * *に、次の警告が表示されます

'5 * * **'ではなく 'H * * * *'を使用して、負荷を均等に分散します

この文脈でHが何を意味するのか、なぜそれを使用する必要があるのか​​わかりません。

回答:


121

Hはハッシュの略です

定期的にスケジュールされたタスクがシステムに均等な負荷をかけることができるようにするには、可能な限り記号H(「ハッシュ」を表す)を使用する必要があります。たとえば、1ダースの毎日のジョブに0 0 * * *を使用すると、深夜に大きなスパイクが発生します。対照的に、HH * * *を使用すると、各ジョブが1日に1回実行されますが、すべてが同時に実行されるわけではなく、限られたリソースを使用する方が適切です。


1
@CédricJulienによってここでもうまく説明されています:stackoverflow.com/a/12472740/1579667
Benj 2016

それはあなたがウィンドウを設定することを可能にするはずです(これより早く、これより遅くはありません)。正確な時刻を設定すると、正確な時刻に実行されるはずです。
アレクサンダーミルズ

1
@AlexanderMillsそれはします:H記号は範囲で使用できます。たとえば、HH(0-7)* * *は、午前12:00(深夜)から午前7:59までの時間を意味します。範囲の有無にかかわらず、Hでステップ間隔を使用することもできます。
BigMcLargeHuge19年

つまり、記号Hはランダムな整数のようなものですか?「ハッシュ」の意味についてもよくわかりません。
ヘンソンファング

29

スケジュール仕様の横にある疑問符をクリックします。それはそこに言います:

定期的にスケジュールされたタスクがシステムに均等な負荷をかけることができるようにするには、可能な限り記号H(「ハッシュ」を表す)を使用する必要があります。たとえば、1ダースの毎日のジョブに0 0 * * *を使用すると、深夜に大きなスパイクが発生します。対照的に、HH * * *を使用すると、各ジョブが1日に1回実行されますが、すべてが同時に実行されるわけではなく、限られたリソースを使用する方が適切です。


8

また、注目に値するドキュメントには次のようなものがあります。

H記号は範囲とともに使用できます。たとえば、HH(0-7)* * *は、午前12:00(深夜)から午前7:59までの時間を意味します。範囲の有無にかかわらず、Hでステップ間隔を使用することもできます。

H記号は、範囲全体のランダムな値と考えることができますが、実際にはジョブ名のハッシュであり、ランダムな関数ではないため、特定のプロジェクトで値が安定します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.