ジェンキンスで1時間ごとにジョブをスケジュールする必要がある


16

私はジェンキンスが初めてです。私は1時間ごとにスケジュールする必要がある仕事があります。

私は使っている

* */1 * * * 

しかし、それは効果的に機能していません。

他のソリューションを提供してください。


3
「しかし、効果的に機能していない」と説明する必要があります。手段。そして、ディストリビューションとクロンタブのエントリを追加します
Sathyajith Bhat

使用@hourlyまたは0 * * * *
Renju Chandran chingath

ありがとう。3時間ごとにスケジュールする場合は、構文を言及してください。
アジャイ

使用:H / 60 * * * *
エイアルスーリマン

回答:


31

ジェンキンスはここで説明されているようにcron表現を使用します

1時間ごとにスケジュールするには、

0 * * * *

その後、ジョブは1時間ごとに実行されます(07:00、08:00、09:00など)

更新

元の構成の説明として、構文

* */1 * * *

分ごとにジョブを実行します。

更新2

コメントで要求されているように、3時間ごとにスケジュールするための構文はこちら

0 */3 * * *

構文*/nは、ジョブが1 n時間ごとにスケジュールされることを意味します


答えてくれてありがとう。うまくいっている。しかし、私の仕事は実行に1時間以上かかります。たとえば、3時間ごとにこのジョブをスケジュールする場合は、syntax.pleaseを共有します。
アジャイ

更新された回答を確認してください:)
マセガロー

@Ajayこの回答が問題に役立つ場合は、この回答を受け入れることを検討してください:)
masegaloeh

14

ジェンキンスはこの方法を提案します:

H * * * *

2
1歳以上の質問に対する他の回答と同じ回答。
JakeGould

これにより別の回答が複製され、新しいコンテンツは追加されません。実際に何か貢献できるものがない限り、回答を投稿しないでください。
DavidPostill

4
このアプローチの利点は、jenkinsがキュー内のタスクを管理することです。他の誰かがすでに答えを持っているかもしれませんが、それはまだ有用です。なぜ有用なのに、そんなに厳しいのでしょうか?20のいいね!の答えはあまりよくありません。...バハ
フアンイサザ

@juanIsazaと一緒に行かなければなりません。これは重複ではありませんが、実際にはより良い答えです。ジェンキンスHは、ハードコーディングされた値の代わりに使用することを好むことを明確に示唆しています
-derHugo

9

私はこれが古いスレッドであることを知っていますが、明らかに人々がまだここに上陸しているので答えています。

一番上の答えはもう使用しないでください。

Jenkinsは値を導入しましたH

このフィールドは、cronの構文に従います(わずかな違いはあります)。具体的には、各行はTABまたは空白で区切られた5つのフィールドで構成されています。

DOM MONTH DOW分

  • 時間内の分(0〜59)
  • HOUR 1日の時間(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(「ハッシュ」)を使用する必要があります。たとえば、1ダースの毎日のジョブに0 0 * * *を使用すると、深夜に大きなスパイクが発生します。対照的に、HH * * *を使用すると、1日1回各ジョブが実行されますが、すべてが同時に実行されるわけではないため、限られたリソースを使用する方が適切です。

H記号は範囲で使用できます。たとえば、HH(0-7)* * *は、午前12:00(深夜)から午前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時間に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のため、通常、これはあなたがshiftetのタイムゾーンを使用してトリックを使用することができますことはできません。

たとえば、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) * * *

-1
* */1 * * *

1時間ごとに実行される

すべてのジョブがsvnに同時にポーリングしないように、H関数を使用してみてください

H H/1 * * *

それは魔法を行う必要があります。ジョブの完了に時間がかかる場合、またはビルドトリガー機能を実行している場合。時間を増やすか、jenkins plugginを使用して、前のビルドが完了するまでビルドを停止します。

https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin


最初のものは午前1時から午前2時の間、毎分実行されますか?
エリックワン

@EricWang:いいえ* * * * *。毎分実行する=> と同じです。特定の範囲内で実行するには、* 1-2 * * *<-のように使用します。これは、毎分1:00 amから1:59 amまで実行されます
-derHugo

@derHugoという意味* * 1-2 * *ですか?
エリックワン

1
@EricWangいいえ* 1-2 * * *。最初の位置はfor Minute of our、2番目はfor 、hour of day3番目day of monthは4番目month of year、5番目ですday of week(特別な場合は6番目も許可されますyear)。したがって、あなたの行* * 1-2 * *は「毎分、毎時、毎月1日と2日、および曜日を
。– derHugo

1
この答えの著者が逃した違いは、に*翻訳するeveryがにH翻訳するということanyです。そうしながら、* * * * *手段毎分、H * * * *毎時一回手段ビルドを私は正確な分(どこかの範囲で定義されていない場合は0から59の間とすることができる)と気にしないH H * * *1日に1回手段ビルドを私は何時間気にしません。
-derHugo

-5

構文は次のとおりです。


MINUTE  Minutes within the hour (0-59)
HOUR    The hour of the day (0-23)
DOM     The day of the month (1-31)
MONTH   The month (1-12)
DOW     The day of the week (0-7) where 0 and 7 are Sunday.

3時間ごとにスケジュールする場合、構文は次のようになります。

* 3 * * * *

4
これは、3時間ごとではなく毎日午前3時にスケジュールされます
-lony
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.