376 Stimmen

Wie kann ich Aufträge in Jenkins planen?

Ich habe einen neuen Auftrag in Jenkins hinzugefügt, den ich regelmäßig einplanen möchte.

En Auftrag konfigurieren Ich aktiviere das Kontrollkästchen "Regelmäßig erstellen" und in der Zeitplan Textfeld den Ausdruck hinzugefügt:

15 13 * * *

Er wird jedoch nicht zur geplanten Zeit ausgeführt.

Ist es das richtige Verfahren, einen Auftrag zu planen?

Enter image description here

Der Auftrag sollte um 4:20 Uhr morgens ausgeführt werden, aber er wird nicht ausgeführt.

659voto

Cédric Julien Punkte 74976

Durch Einstellen des Zeitraums auf 15 13 * * * Sie weisen Jenkins an, den Build an jedem Tag jedes Monats und jedes Jahres zur 15. Minute der 13.

Jenkins verwendete eine Cron-Ausdruck und die verschiedenen Bereiche sind:

  1. MINUTEN Minuten in einer Stunde (0-59)
  2. STUNDEN Stunden an einem Tag (0-23)
  3. DAYMONTH Tag im Monat (1-31)
  4. MONAT Monat im Jahr (1-12)
  5. DAYWEEK Wochentag (0-7), wobei 0 und 7 für Sonntag stehen

Wenn Sie alle 5 Minuten einen Zeitplan für die Erstellung erstellen möchten, ist dies genau das Richtige für Sie: */5 * * * *

Wenn Sie Ihren Bau jeden Tag um 8.00 Uhr planen wollen, ist das genau das Richtige für Sie: 0 8 * * *

Für die letzten Versionen (2014), Jenkins haben einen neuen Parameter, H (Auszug aus dem Jenkins-Code-Dokumentation ):

Damit die periodisch geplanten Aufgaben das System gleichmäßig belasten, wird das Symbol H (für "Raute") sollte nach Möglichkeit verwendet werden.

Zum Beispiel mit 0 0 * * * für ein Dutzend täglicher Aufträge wird um Mitternacht eine große Spitze verursachen. Im Gegensatz dazu ist die Verwendung von H H * * * würde immer noch jeden Auftrag einmal am Tag ausführen, aber nicht alle gleichzeitig, um die begrenzten Ressourcen besser zu nutzen.

Beachten Sie auch das:

En H Symbol kann man sich als Zufallswert über einen Bereich vorstellen, aber es handelt sich tatsächlich um einen Hash des Auftragsnamens und nicht um eine Zufallsfunktion, so dass der Wert für ein bestimmtes Projekt stabil bleibt.

Weitere Beispiele für die Verwendung von 'H'

57voto

Das Format ist wie folgt:

MINUTE (0-59), STUNDE (0-23), TAG (1-31), MONAT (1-12), WOCHENTAG (0-6)

Der Buchstabe H, der das Wort Hash kann anstelle eines beliebigen Wertes eingefügt werden. Der Parameter wird auf der Grundlage des Hash-Codes des Projektnamens berechnet.

Wenn Sie mehrere Projekte gleichzeitig auf Ihrer Build-Maschine erstellen, z. B. jeden Tag um Mitternacht, beginnen sie nicht alle zur gleichen Zeit mit der Build-Ausführung. Jedes Projekt beginnt seine Ausführung zu einer anderen Minute, abhängig von seinem Hash-Code.

Sie können den Wert auch zwischen Zahlen angeben, d. h. H(0,30) gibt den Hash-Code des Projekts zurück, wobei die möglichen Hashes 0-30 sind.

Beispiele:

  1. Baubeginn täglich um 08:30 Uhr morgens, Montag bis Freitag: 30 08 * * 1-5

  2. Wochentags wird zweimal täglich gebaut, mittags um 12:00 Uhr und mittags um 00:00 Uhr, Sonntag bis Donnerstag: 00 0,12 * * 0-4

  3. Baubeginn täglich am späten Nachmittag zwischen 16:00 - 16:59 Uhr oder 16:00 - 16:59 Uhr, je nach Projekt: H 16 * * 1-5

  4. Baubeginn um Mitternacht: @Mitternacht oder Start des Builds um Mitternacht, jeden Samstag: 59 23 * * 6

  5. Jeden ersten Tag im Monat zwischen 2:00 und 02:30 Uhr nachts: H(0,30) 02 01 * *

53voto

Pawan Gaitonde Punkte 621

Mit Jenkins können Sie mehrere Zeiten festlegen, die durch Zeilenumbrüche getrennt sind.

Wenn es täglich um 7 Uhr morgens und jeden Sonntag um 16 Uhr aufgebaut werden soll, funktioniert das untenstehende Beispiel gut.

H 7 * * *

H 16 * * 0

36voto

Nikul Padhya Punkte 502

*/5 * * * * bedeutet alle 5 Minuten

5 * * * * bedeutet die 5. Minute einer jeden Stunde

35voto

Gavriel Cohen Punkte 3882

Die Schritte zur Planung von Aufträgen in Jenkins:

  1. anklicken "Konfigurieren" der Arbeitsanforderungen
  2. blättern Sie nach unten zu " Auslöser erstellen " - Untertitel
  3. Klicken Sie auf die Checkbox von Regelmäßig bauen
  4. Fügen Sie z. B. einen Zeitplan in das Feld Zeitplan ein: @midnight

enter image description here

Hinweis Unter dem Feld "Zeitplan" können Sie den letzten und den nächsten Lauftermin sehen.

Jenkins unterstützt auch vordefinierte Aliase zur Planung von Builds:

@hourly , @daily , @weekly , @monthly , @midnight

@hourly --> Jede Stunde zu Beginn der Stunde aufbauen --> 0 * * * *

@daily, @midnight --> Jeden Tag um Mitternacht bauen --> 0 0 * * *

@weekly --> Jede Woche um Mitternacht am Sonntagmorgen aufbauen --> 0 0 * * 0

@monthly --> Jeden Monat um Mitternacht des ersten Tages des Monats erstellen --> 0 0 1 * *

Ein weiteres Beispiel: Wie man nur an einem bestimmten Wochentag läuft:

# Every Sunday at 19:00

0  19  *  *  0

Die Zahl am Ende gibt den Wochentag gemäß der folgenden Liste an:

0 = Sunday
1 = Monday
2 = Tuesday
3 = Wednesday
4 = Thursday
5 = Friday
6 = Saturday

Wenn Sie sich für die Anzahl der Tage pro Woche interessieren, können Sie ein Komma wie folgt hinzufügen:

# Monday, Wednesday and Friday:

0  19  *  *  1,3,5

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X