ジェンキンスは初めてです。 1時間ごとにスケジュールする必要があるジョブがあります。
使ってます
* */1 * * *
しかし、それは効果的に機能していません。
他の解決策を提供してください。
Jenkinsは説明されているようにcron式を使用します here
1時間ごとにスケジュールするには、
0 * * * *
その後、ジョブは1時間ごとに実行されます(07:00、08:00、09:00など)
[〜#〜]更新[〜#〜]
元の構成、構文の説明として
* */1 * * *
分ごとにジョブを実行します。
更新2
コメントで要求されているように、ここでは3時間ごとにスケジュールするための構文
0 */3 * * *
構文*/n
は、ジョブがn
時間ごとにスケジュールされることを意味します
ジェンキンスはこのように提案しています:
H * * * *
私はこれが古いスレッドであることを知っていますが、どうやら人々はまだここに上陸しているので、答えています。
トップの回答 はもう使用しないでください。
Jenkinsは値H
を導入しました。
このフィールドはcronの構文に従います(わずかな違いがあります)。具体的には、各行は、TABまたは空白で区切られた5つのフィールドで構成されています。
MINUTE HOUR DOM MONTH DOW
- MINUTE時間内の分(0〜59)
- HOUR時間(0〜23)
- DOM月の日(1〜31)
- MONTH月(1〜12)
- DOW曜日(0〜7)。0と7は日曜日です。
1つのフィールドに複数の値を指定するには、次の演算子を使用できます。優先順位の高い順に、
*
はすべての有効な値を指定しますM-N
は値の範囲を指定しますM-N/X
または*/X
は、指定された範囲または有効範囲全体をXの間隔でステップします。A,B,...,Z
は複数の値を列挙します定期的にスケジュールされたタスクがシステムに均等な負荷をかけることができるようにするには、記号H(「ハッシュ」)を可能な限り使用する必要があります。たとえば、毎日0個のジョブに0 0 * * *を使用すると、真夜中に大きなスパイクが発生します。対照的に、H H * * *を使用すると、各ジョブが1日に1回実行されますが、すべてが同時に実行されるわけではなく、限られたリソースを使用するほうが適切です。
H記号は範囲で使用できます。たとえば、H H(0-7) * * *は、午前12時(真夜中)から午前7時59分までの時間を意味します。Hでステップ間隔を使用することもできます。範囲なし。
H記号は、ある範囲のランダムな値と考えることができますが、実際には、ランダムな関数ではなく、ジョブ名のハッシュであるため、特定のプロジェクトで値は安定しています。
日のフィールドでは、月の長さが変動するため、*/3やH/3などの短いサイクルがほとんどの月の終わり近くで一貫して機能しないことに注意してください。たとえば、*/3は長い月の1日、4日、…31日目に実行され、次に翌月の翌日に再び実行されます。ハッシュは常に1〜28の範囲で選択されるため、H/3は実行の間に月末に3〜6日のギャップを生成します。 (サイクルが長くなると、長さに一貫性がなくなりますが、その影響は比較的目立たなくなります。)
したがって、1時間に1回ビルドするための正しい答えは
H * * * *
3時間ごと
H H/3 * * *
*
とH
の違いは、
*
は[〜#〜] every [〜#〜]に変換されますH
は[〜#〜] any [〜#〜]に変換されますしたがって、たとえば.
* * * * *
変換:毎分、毎時、毎日、毎月、何曜日かは関係ありません。
H * * * *
変換:ビルド1回毎時(x)、正確な分は関係ありません(x:00とxの間の任意の分にすることができます: 59)
H H * * *
変換:ビルド1回、毎日何時でもかまいません(00:00から23:59の間の任意の分と任意の時間にすることができます) )
ハードコードされた時間値の代わりにH
を使用するほうがよい理由は、以前と同様に説明されています
100個のジョブが
0 0 * * *
それらはすべて同時に開始しようとし、たとえば、真夜中に多くのポーリングとプルトラフィックを引き起こします。
代わりにそれらをすべて設定すると
H H * * *
これらはすべて1日に1回作成されますが、すべて同時にではなく、1日に配布されます。
時間範囲を使用することで、スケジュールをより適切に計画できます。
H H(18-23) * * *
すべてのジョブは、毎日18:00から23:59の間のいつでも作成されます。
深夜にまたがるジョブをスケジュールすることも可能です。午後19:00から午前5:00の間に構築します。
しかしcronは通常これを許可しないため、シフトタイムゾーンを使用してトリックを使用できます。
例えば。私はGMT + 1のタイムゾーンMEZに住んでおり、午後19:00から午前5:00までの間にすべてのジョブを構築したいと考えています。そのために、次のコマンドを使用して完全なタイムゾーンを5時間シフトします
TZ=Etc/GMT+6
14:00(-> +5 = 19:00 pm)で始まり23:59(-> +5 = 4:59 am)で終わる時間にシフト範囲を使用するよりも
H H(14-23) * * *