Je suis nouveau à Jenkins. J'ai un travail que je dois planifier toutes les 1 heure.
j'utilise
* */1 * * *
mais cela ne fonctionne pas efficacement.
Veuillez fournir toute autre solution.
@hourly
ou0 * * * *
Je suis nouveau à Jenkins. J'ai un travail que je dois planifier toutes les 1 heure.
j'utilise
* */1 * * *
mais cela ne fonctionne pas efficacement.
Veuillez fournir toute autre solution.
@hourly
ou0 * * * *
Réponses:
Jenkins utilise l'expression cron comme expliqué ici
Pour planifier toutes les heures, vous pouvez mettre
0 * * * *
Ensuite, votre travail sera exécuté toutes les heures (07h00, 08h00, 09h00 et ainsi de suite)
MISE À JOUR
Comme explication sur votre configuration d'origine, syntaxe
* */1 * * *
exécutera le travail toutes les minutes.
MISE À JOUR 2
Comme demandé dans le commentaire, voici la syntaxe pour le programmer toutes les 3 heures
0 */3 * * *
La syntaxe */n
signifie que les travaux seront planifiés toutes les n
heures
Jenkins suggère ainsi:
H * * * *
H
valeurs plutôt que codées en dur
Je sais que c'est un vieux fil, mais je réponds car apparemment, les gens atterrissent encore ici.
La première réponse ne devrait plus être utilisée.
Jenkins a introduit une valeur H
.
Ce champ suit la syntaxe de cron (avec des différences mineures). Plus précisément, chaque ligne se compose de 5 champs séparés par une tabulation ou un espace:
HEURE MINUTE DOM MOIS DOW
- MINUTE Minutes dans l'heure (0–59)
- HEURE L'heure du jour (0–23)
- DOM Le jour du mois (1–31)
- MOIS Le mois (1–12)
- DOW Le jour de la semaine (0–7) où 0 et 7 sont dimanche.
Pour spécifier plusieurs valeurs pour un champ, les opérateurs suivants sont disponibles. Dans l'ordre de priorité,
*
spécifie toutes les valeurs validesM-N
spécifie une plage de valeursM-N/X
ou*/X
pas par intervalles de X à travers la plage spécifiée ou toute la plage valideA,B,...,Z
énumère plusieurs valeursPour permettre aux tâches planifiées périodiquement de produire une charge uniforme sur le système, le symbole H (pour «hachage») doit être utilisé dans la mesure du possible. Par exemple, l'utilisation de 0 0 * * * pour une douzaine de tâches quotidiennes provoquera un pic important à minuit. En revanche, l'utilisation de HH * * * exécuterait toujours chaque tâche une fois par jour, mais pas toutes en même temps, mieux en utilisant des ressources limitées.
Le symbole H peut être utilisé avec une plage. Par exemple, HH (0-7) * * * signifie un certain temps entre 12:00 AM (minuit) et 7:59 AM. Vous pouvez également utiliser des intervalles de pas avec H, avec ou sans plages.
Le symbole H peut être considéré comme une valeur aléatoire sur une plage, mais il s'agit en fait d'un hachage du nom du travail, et non d'une fonction aléatoire, de sorte que la valeur reste stable pour un projet donné.
Sachez que pour le champ jour du mois, les cycles courts tels que * / 3 ou H / 3 ne fonctionneront pas de manière cohérente vers la fin de la plupart des mois, en raison de la longueur variable des mois. Par exemple, * / 3 s'exécutera les 1er, 4e,… 31e jours d'un long mois, puis à nouveau le lendemain du mois suivant. Les hachages sont toujours choisis dans la plage 1-28, donc H / 3 produira un écart entre les cycles de 3 à 6 jours à la fin d'un mois. (Les cycles plus longs auront également des longueurs incohérentes mais l'effet peut être relativement moins perceptible.)
Donc, la bonne réponse pour construire une fois par heure est
H * * * *
toutes les 3 heures
H H/3 * * *
La différence entre *
et H
pourrait également être expliquée comme
*
se traduit par CHAQUEH
se traduit par TOUTDonc par exemple
* * * * *
se traduit par: Construire chaque minute, chaque heure, chaque jour du mois, chaque mois, peu importe le jour de la semaine.
H * * * *
se traduit par: construire une fois toutes les heures (x), peu importe la minute exacte (il peut s'agir d'une minute entre x: 00 et x: 59)
H H * * *
se traduit par: Construire une fois par jour, quelle que soit l'heure (peut être n'importe quelle minute et n'importe quelle heure entre 00:00 et 23:59)
La raison pour laquelle vous devriez préférer utiliser H
des valeurs de temps codées en dur est également expliquée comme précédemment.
Si vous avez 100 tâches configurées avec
0 0 * * *
ils vont tous essayer de démarrer en même temps provoquant par exemple beaucoup de sondages et de trafic à minuit.
Si vous les avez plutôt configurés avec
H H * * *
ils seront tous construits une fois par jour mais pas tous en même temps mais répartis sur la journée.
Vous pouvez mieux planifier le schéma en utilisant les plages de temps, par exemple
H H(18-23) * * *
Tous les travaux seront créés tous les jours à tout moment entre 18h00 et 23h59.
Il est même également possible de programmer des travaux traversant minuit, par exemple pour construire entre 19h00 et 5h00.
Mais comme cron ne le permet généralement pas, vous pouvez utiliser une astuce en utilisant un fuseau horaire de décalage.
Par exemple, je vis dans le fuseau horaire MEZ qui est GMT + 1 et je veux créer tous les emplois entre 19h00 et 5h00. Pour ce faire, je décale mon fuseau horaire complet de 5 heures en utilisant
TZ=Etc/GMT+6
Ensuite, j'utilise une plage de décalage pour les heures commençant à 14h00 (-> +5 = 19h00) et se terminant à 23h59 (-> +5 = 4h59)
H H(14-23) * * *
* */1 * * *
est correct, il fonctionne toutes les heures
Essayez d'utiliser la fonction H pour que tous les travaux ne soient pas interrogés en même temps vers svn
H H/1 * * *
Cela devrait faire de la magie. Si le travail prend plus de temps à terminer ou si vous effectuez une fonctionnalité de déclenchement de génération. Augmentez le temps ou utilisez jenkins pluggin pour arrêter la génération jusqu'à la fin de la génération précédente.
https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin
* * * * *
=> courir toutes les minutes. Pour courir entre une certaine plage, vous l'utilisez comme * 1-2 * * *
<- cela fonctionne toutes les minutes entre 1h00 et 1h59
* * 1-2 * *
?
* 1-2 * * *
. La première position est pour Minute of our
, la seconde pour hour of day
, la troisième day of month
, la quatrième month of year
et la cinquième day of week
(dans des cas spéciaux, elle permet également une sixième year
). Ainsi, votre ligne * * 1-2 * *
traduit "Chaque minute, chaque heure, le premier et le deuxième jour de chaque mois et n'importe quel jour de la semaine.
*
traduit par every
tandis que se H
traduit par any
. Donc, alors que * * * * *
signifie chaque minute, H * * * *
signifie construire une fois toutes les heures, mais je m'en fiche de la minute exacte (peut être n'importe où entre 0 et 59 si elle n'est pas définie par une plage) et H H * * *
signifie construire une fois par jour, mais je me fiche de l'heure.
La syntaxe est:
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.
Si vous souhaitez planifier toutes les 3 heures, la syntaxe doit ressembler à:
* 3 * * * *