Répartissez la charge uniformément en utilisant 'H * * * *' plutôt que '5 * * * *'

91

Lors de la configuration de la façon dont Jenkins doit tirer les modifications de la subversion, j'ai essayé de vérifier le SCM de sondage et de définir le calendrier sur 5 * * * *, je reçois l'avertissement suivant

Répartissez la charge uniformément en utilisant 'H * * * *' plutôt que '5 * * * *'

Je ne sais pas ce que signifie H dans ce contexte et pourquoi je devrais l'utiliser.

Je suis occupé à coder
la source

Réponses:

121

H signifie Hash

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, utiliser 0 0 * * * pour une douzaine de tâches quotidiennes provoquera un pic important à minuit. En revanche, utiliser HH * * * exécuterait toujours chaque travail une fois par jour, mais pas tous en même temps, mieux utiliser des ressources limitées.

SMA
la source
1
Bien expliqué par @ CédricJulien ici aussi: stackoverflow.com/a/12472740/1579667
Benj
Cela devrait vous permettre de définir une fenêtre (au plus tôt, au plus tard). Si vous définissez une heure exacte, il doit l'exécuter à l'heure exacte.
Alexander Mills
1
@AlexanderMills c'est le cas: Le symbole H peut être utilisé avec une plage. Par exemple, HH (0-7) * * * signifie une heure entre minuit (minuit) et 7 h 59. Vous pouvez également utiliser des intervalles de pas avec H, avec ou sans plages.
Big McLargeHuge
Donc le symbole H est comme un entier aléatoire? Je ne connais pas vraiment la signification de "hash", aussi.
Henson Fang le
29

Cliquez sur le point d'interrogation à côté de votre spécification d'horaire. Il dit là:

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, utiliser 0 0 * * * pour une douzaine de tâches quotidiennes provoquera un pic important à minuit. En revanche, utiliser HH * * * exécuterait toujours chaque travail une fois par jour, mais pas tous en même temps, mieux utiliser des ressources limitées.

pitseeker
la source
8

Il convient également de noter dans la documentation que:

Le symbole H peut être utilisé avec une plage. Par exemple, HH (0-7) * * * signifie une heure entre minuit (minuit) et 7 h 59. 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, pas d'une fonction aléatoire, de sorte que la valeur reste stable pour un projet donné.

Bryan Cox
la source