Como programo trabalhos no Jenkins?

Adicionei um novo emprego no Jenkins, que quero agendar periodicamente.

a partir de Configurar a tarefa , estou a verificar a opção" compilar periodicamente " e no campoescalonamento o campo de texto adicionou a expressão:

15 13 * * *

mas não funciona na hora programada.

É o procedimento correcto agendar um trabalho?

Enter image description here

o trabalho deve ser executado às 4: 20 da manhã, mas não está a correr.

 188
Author: Peter Mortensen, 2012-09-18

7 answers

Ao definir o período de programação para 15 13 * * * diz ao Jenkins para marcar a construção todos os dias de cada mês de cada ano, aos 15 minutos da 13ª hora do dia.

O Jenkins usou uma expressão de cron , e os diferentes campos são:

    Minutos minutos numa hora (0-59)
  1. horas num dia (0-23)
  2. Dia de um mês (1-31) Mês em um ano (1-12) Dia da semana (0-7) onde 0 e 7 são domingo
Se quiser agendar a sua construção a cada 5 minutos, isto fará o trabalho.: */5 * * * * Se quiser agendar a sua construção todos os dias às 8h00, isto fará o trabalho.: 0 8 * * *

Para As últimas versões (2014), Jenkins tem um novo parâmetro, H (extracto da documentação do código Jenkins):

Para permitir que tarefas periodicamente programadas produzam uma carga uniforme no sistema, o símbolo H (para "hash") deve ser utilizado sempre que possível.

Por exemplo, usar o 0 0 * * * para uma dúzia de trabalhos diários causará um grande aumento à meia-noite. Em contraste, o uso de H H * * * Ainda assim executaria cada trabalho uma vez por dia, mas não todos ao mesmo tempo, melhor usando recursos limitados.

Note também que:

O símbolo H pode ser considerado como um valor aleatório sobre 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 dado projecto.

Mais exemplo de usar 'H'

 346
Author: Cédric Julien, 2018-07-21 17:04:05
O Jenkins deixa-te configurar várias vezes, separados por pausas de linha.

Se você precisar dele para construir diariamente às 7 da manhã, juntamente com todos os domingos às 4 da tarde, o abaixo funciona bem.

H 7 * * *

H 16 * * 0
 19
Author: Pawan Gaitonde, 2018-07-21 17:05:54

*/5 * * * * significa a cada 5 minutos

5 * * * * significa o quinto minuto de cada hora.

 16
Author: Nikul Padhya, 2016-01-22 19:40:58

Para agendar uma tarefa de cron a cada 5 minutos, você precisa definir as configurações de cron como esta:

*/5 * * * *
 5
Author: fduff, 2018-07-21 17:04:52

O formato é o seguinte:

MINUTE (0-59), HOUR( 0-23), DAY( 1-31), MONTH( 1-12), DAY OF THE WEEK (0-6)

A letra H, representando a palavra Hash pode ser inserida em vez de qualquer um dos valores. Ele irá calcular o parâmetro com base no código de hash do seu nome de projeto.

Isto é para que se você está construindo vários projetos em sua máquina de construção ao mesmo tempo, digamos meia-noite a cada dia, eles não iniciam sua execução de construção em ao mesmo tempo. Cada projeto inicia sua execução em um minuto diferente, dependendo de seu código de hash.

Você também pode especificar o valor a ser entre os números, ou seja, H (0,30) irá devolver o código de hash do projeto, onde os possíveis hashs são 0-30.

Exemplos:

  1. Comece a construir diariamente às 08: 30 da manhã, Segunda-sexta-feira: 30 08 * * 1-5

  2. Dia da semana diariamente construir duas vezes por dia, à hora do almoço 12: 00 e meia-noite 00: 00, domingo para Quinta-feira: 00 0,12 * * 0-4

  3. Começar a construir diariamente no final da tarde entre 4:00 - 4:59 pm ou 16:00 -16:59 consoante os projectos de hash: H 16 * * 1-5

  4. Começar a construir à meia-noite: @midnight ou começar a construir à meia-noite, todos os sábados: 59 23 * * 6

  5. Todos os primeiros meses de cada mês entre as 2:00 da manhã e as 02: 30 da manhã.(0,30) 02 01 * *

 3
Author: Nagarjuna Yalamanchili, 2018-07-21 17:10:18

Tente usar 0 8 * * *. Deve funcionar.

 2
Author: user1815823, 2013-08-23 22:20:38

Para quem não quiser esperar a hora inteira para ver se uma determinada construção despoleta:

Para obter a hash, você pode baixar a hasher aqui. Use o nome completo do projecto tal como está escrito na página do ramo e imprime-o assim:

System.out.println(Hash.from("sub/microservices/master"));
 -1
Author: thoredge, 2018-07-21 17:07:06