Merci pour la réponse, ça marche bien. Mais mon travail prend plus d'une heure à exécuter. Par exemple, si je veux planifier ce travail toutes les 3 heures, quel serait le partage syntax.please.
Ajay
Vérifiez ma réponse mise à jour :)
masegaloeh
@Ajay Si cette réponse fonctionne pour votre problème, veuillez envisager d' accepter cette réponse :)
Même réponse que les autres réponses à une question qui a plus d'un an.
JakeGould
Cela duplique une autre réponse et n'ajoute aucun nouveau contenu. Veuillez ne pas poster de réponse à moins que vous ayez réellement quelque chose de nouveau à apporter.
DavidPostill
4
L'avantage de cette approche est que jenkins gérera les tâches dans une file d'attente. Peut-être que quelqu'un d'autre avait déjà la réponse, mais elle est toujours utile. Pourquoi être si sévère si c'est utile? la réponse avec 20 likes n'est PAS si bonne .... bah
juan Isaza
Je dois aller avec @juanIsaza. Ce n'est pas un doublon mais en fait une meilleure réponse. Jenkins suggère clairement de préférer l'utilisation de Hvaleurs plutôt que codées en dur
derHugo
9
Je sais que c'est un vieux fil, mais je réponds car apparemment, les gens atterrissent encore ici.
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 valides
M-N spécifie une plage de valeurs
M-N/Xou */Xpas par intervalles de X à travers la plage spécifiée ou toute la plage valide
A,B,...,Z énumère plusieurs valeurs
Pour 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 Hpourrait également être expliquée comme
*se traduit par CHAQUE
Hse traduit par TOUT
Donc 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 Hdes 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.
Planifier la plage de temps
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.
Programmer la plage horaire traversant minuit
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)
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.
Le premier fonctionne toutes les minutes entre 1h00 et 2h00, non?
Eric Wang
@EricWang: Non. C'est la même chose que * * * * *=> 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
derHugo
@derHugo Vous voulez dire * * 1-2 * *?
Eric Wang
1
@EricWang Non je veux dire * 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 yearet 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.
derHugo
1
La différence à laquelle l'auteur de cette réponse a manqué est qu'elle se *traduit par everytandis que se Htraduit 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.
derHugo
-5
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 à:
@hourly
ou0 * * * *
Réponses:
Jenkins utilise l'expression cron comme expliqué ici
Pour planifier toutes les heures, vous pouvez mettre
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
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
La syntaxe
*/n
signifie que les travaux seront planifiés toutes lesn
heuresla source
Jenkins suggère ainsi:
la source
H
valeurs plutôt que codées en durJe 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
.Donc, la bonne réponse pour construire une fois par heure est
toutes les 3 heures
La différence entre
*
etH
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.
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)
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
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
ils seront tous construits une fois par jour mais pas tous en même temps mais répartis sur la journée.
Planifier la plage de temps
Vous pouvez mieux planifier le schéma en utilisant les plages de temps, par exemple
Tous les travaux seront créés tous les jours à tout moment entre 18h00 et 23h59.
Programmer la plage horaire traversant minuit
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
Ensuite, j'utilise une plage de décalage pour les heures commençant à 14h00 (-> +5 = 19h00) et se terminant à 23h59 (-> +5 = 4h59)
la source
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
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
la source
* * * * *
=> 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 pourMinute of our
, la seconde pourhour of day
, la troisièmeday of month
, la quatrièmemonth of year
et la cinquièmeday of week
(dans des cas spéciaux, elle permet également une sixièmeyear
). 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 parevery
tandis que seH
traduit parany
. 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) etH H * * *
signifie construire une fois par jour, mais je me fiche de l'heure.La syntaxe est:
Si vous souhaitez planifier toutes les 3 heures, la syntaxe doit ressembler à:
la source