Como programo trabalhos no Jenkins?
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?o trabalho deve ser executado às 4: 20 da manhã, mas não está a correr.
7 answers
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)
- horas num dia (0-23) 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
*/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
Por exemplo, usar oH
(para "hash") deve ser utilizado sempre que possível.0 0 * * *
para uma dúzia de trabalhos diários causará um grande aumento à meia-noite. Em contraste, o uso deH 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.
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
*/5 * * * *
significa a cada 5 minutos
5 * * * *
significa o quinto minuto de cada hora.
Para agendar uma tarefa de cron a cada 5 minutos, você precisa definir as configurações de cron como esta:
*/5 * * * *
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:
Comece a construir diariamente às 08: 30 da manhã, Segunda-sexta-feira: 30 08 * * 1-5
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
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
Começar a construir à meia-noite: @midnight ou começar a construir à meia-noite, todos os sábados: 59 23 * * 6
Todos os primeiros meses de cada mês entre as 2:00 da manhã e as 02: 30 da manhã.(0,30) 02 01 * *
Tente usar 0 8 * * *. Deve funcionar.
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"));