Distribua a carga uniformemente usando 'H * * * *' em vez de '5 * * * *'

93

Ao configurar como Jenkins deve puxar as alterações do subversion, eu tentei verificar Poll SCM e definir a programação para 5 * * * *, recebo o seguinte aviso

Distribua a carga uniformemente usando 'H * * * *' em vez de '5 * * * *'

Não tenho certeza do que H significa neste contexto e por que devo usá-lo.

Estou ocupado codificando
fonte

Respostas:

123

H significa Hash

Para permitir que tarefas agendadas periodicamente produzam uma carga uniforme no sistema, o símbolo H (para “hash”) deve ser usado sempre que possível. Por exemplo, usar 0 0 * * * para uma dúzia de tarefas diárias causará um grande pico à meia-noite. Por outro lado, usar HH * * * ainda executaria cada trabalho uma vez por dia, mas não todos ao mesmo tempo, melhor usando recursos limitados.

SMA
fonte
1
Muito bem explicado por @ CédricJulien aqui também: stackoverflow.com/a/12472740/1579667
Benj
Deve permitir que você defina uma janela (não antes disso, não depois disso). Se você definir uma hora exata, ele deve executá-lo na hora exata.
Alexander Mills
1
Sim, @AlexanderMills: O símbolo H pode ser usado com um intervalo. Por exemplo, HH (0-7) * * * significa algum horário entre 0h (meia-noite) e 7h59. Você também pode usar intervalos de etapas com H, com ou sem intervalos.
Big McLargeHuge
Então o símbolo H é como um inteiro aleatório? Eu realmente não sei sobre o significado de "hash" também.
Henson Fang
29

Clique no ponto de interrogação ao lado de sua especificação de programação. Diz lá:

Para permitir que tarefas agendadas periodicamente produzam uma carga uniforme no sistema, o símbolo H (para “hash”) deve ser usado sempre que possível. Por exemplo, usar 0 0 * * * para uma dúzia de tarefas diárias causará um grande pico à meia-noite. Por outro lado, usar HH * * * ainda executaria cada trabalho uma vez por dia, mas não todos ao mesmo tempo, melhor usando recursos limitados.

pitseeker
fonte
8

Também na documentação digna de nota é que:

O símbolo H pode ser usado com um intervalo. Por exemplo, HH (0-7) * * * significa algum horário entre 0h (meia-noite) e 7h59. Você também pode usar intervalos de etapas com H, com ou sem intervalos.

O símbolo H pode ser considerado um valor aleatório em um intervalo, mas na verdade é um hash do nome do trabalho, não uma função aleatória, de modo que o valor permanece estável para qualquer projeto.

Bryan Cox
fonte