Eu sou novo no Jenkins. Eu tenho um trabalho que eu preciso agendar a cada 1 hora.
estou usando
* */1 * * *
mas não está funcionando de forma eficaz.
Por favor, forneça qualquer outra solução.
@hourly
ou 0 * * * *
Eu sou novo no Jenkins. Eu tenho um trabalho que eu preciso agendar a cada 1 hora.
estou usando
* */1 * * *
mas não está funcionando de forma eficaz.
Por favor, forneça qualquer outra solução.
@hourly
ou 0 * * * *
Respostas:
Jenkins usa a expressão cron como explicado Aqui
Para agendar a cada hora, você pode colocar
0 * * * *
Então seu trabalho será executado a cada hora (07:00, 08:00, 09:00 e assim por diante)
ATUALIZAR
Como explicação sobre sua configuração original, sintaxe
* */1 * * *
irá executar o trabalho a cada minuto.
ATUALIZAÇÃO 2
Conforme solicitado no comentário, aqui sintaxe para agendar a cada 3 horas
0 */3 * * *
A sintaxe */n
significa que os trabalhos serão programados a cada n
horas
Jenkins sugere isso:
H * * * *
H
em vez de valores codificados
Eu sei que este é um tópico antigo, mas estou respondendo porque aparentemente as pessoas ainda estão aqui.
A resposta de topo não deve ser mais usado.
Jenkins introduziu um valor H
.
Este campo segue a sintaxe do cron (com pequenas diferenças). Especificamente, cada linha consiste em 5 campos separados por TAB ou espaço em branco:
HORA DE MINUTOS DOM MÊS DOW
- MINUTO Minutos dentro da hora (0–59)
- HORA A hora do dia (0–23)
- DOM O dia do mês (1–31)
- MÊS O mês (1 a 12)
- DOW O dia da semana (0–7) onde 0 e 7 são domingo.
Para especificar vários valores para um campo, os seguintes operadores são acessível. Na ordem de precedência,
*
especifica todos os valores válidosM-N
especifica um intervalo de valoresM-N/X
ou*/X
etapas por intervalos de X até o intervalo especificado ou todo o intervalo válidoA,B,...,Z
enumera vários valoresPara permitir que tarefas periodicamente agendadas produzam carga sistema, o símbolo H (para "hash") deve ser usado sempre que possível. Por exemplo, usar 0 0 * * * para uma dúzia de trabalhos diários causará um grande pico à meia-noite. Em contraste, usando H H * * * ainda seria executado cada trabalho uma vez por dia, mas não todos ao mesmo tempo, usando melhor recursos limitados.
O símbolo H pode ser usado com um intervalo. Por exemplo, H H (0-7) * * * significa algum tempo entre as 00:00 (meia-noite) e as 7:59 AM. Você também pode use intervalos de passos com H, com ou sem intervalos.
O símbolo H pode ser considerado como um valor aleatório em um intervalo, mas na verdade é um hash do nome do trabalho, não uma função aleatória, para que o O valor permanece estável para qualquer projeto.
Tenha em atenção que, para o campo do dia do mês, ciclos curtos como * / 3 ou H / 3 não funcionará consistentemente perto do final da maioria dos meses, devido a comprimentos mensais variáveis. Por exemplo, * / 3 será executado no 1º, 4º … 31 dias de um mês longo, depois novamente no dia seguinte do mês seguinte. Hashes são sempre escolhidos na faixa de 1-28, então H / 3 irá produzir uma lacuna entre execuções entre 3 e 6 dias no final de um mês. (Mais longo ciclos também terão comprimentos inconsistentes, mas o efeito pode ser relativamente menos perceptível.)
Então a resposta correta para construir uma vez por hora é
H * * * *
para cada 3 horas
H H/3 * * *
A diferença entre *
e H
poderia ser também explicado como
*
traduz para CADA H
traduz para QUALQUER Então, por exemplo,
* * * * *
Traduz para: Construir cada minuto, toda hora, todo dia do mês, todo mês, não importa qual dia da semana é.
H * * * *
traduz a: Construir uma vez a cada hora (x), não importa o minuto exato (pode ser qualquer minuto entre x: 00 e x: 59)
H H * * *
traduz a: Construir uma vez todos os dias, não importa que horas são (pode ser qualquer minuto e qualquer hora entre as 00:00 e as 23:59)
A razão pela qual você deve preferir usar H
em vez de valores de tempo codificados é também explicado como antes
Se você tiver 100 trabalhos configurados com
0 0 * * *
todos tentarão começar ao mesmo tempo, causando, por exemplo, muita pesquisa e puxando o tráfego à meia-noite.
Se você os tiver, todos configurados com
H H * * *
todos eles serão construídos uma vez por dia, mas nem todos ao mesmo tempo, mas distribuídos ao longo do dia.
Você pode planejar melhor o cronograma usando os intervalos de tempo.
H H(18-23) * * *
Todos os trabalhos serão construídos todos os dias a qualquer hora entre as 18:00 e as 23:59.
É também possível agendar trabalhos que atravessam a meia-noite, e. construir entre as 19:00 e as 5:00 da manhã.
Mas desde cron geralmente não permite isso, você pode usar um truque usando um fuso horário shifter.
Por exemplo. Estou vivendo no fuso horário MEZ que é GMT + 1 e quero construir todos os trabalhos entre 19:00 e 5:00 da manhã. Para isso, mudo o fuso horário completo em 5 horas usando
TZ=Etc/GMT+6
Do que eu uso um intervalo de turnos para as horas começando às 14:00 (- & gt; +5 = 19:00 pm) e terminando às 23:59 (- & gt; +5 = 4:59 am)
H H(14-23) * * *
* */1 * * *
está correto ele é executado a cada hora
Tente usar a função H para que todo o trabalho não faça polling ao mesmo tempo para o svn
H H/1 * * *
Deve fazer mágica. Se o trabalho levar mais tempo para ser concluído ou se você estiver executando a funcionalidade de acionador de compilação. Aumente o tempo ou use plugins do jenkins para parar a compilação até que a compilação anterior seja concluída.
https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin
* * * * *
= & gt; correndo a cada minuto. Para correr entre um determinado intervalo, use-o como * 1-2 * * *
& lt; - isso ocorre a cada minuto entre 1h e 1h59
* * 1-2 * *
?
* 1-2 * * *
. A primeira posição é para Minute of our
, o segundo para hour of day
, o terceiro day of month
quarto month of year
e quinto day of week
(em casos especiais também permite um sexto year
). Então sua linha * * 1-2 * *
traduz cada minuto, cada hora, o primeiro e segundo dia de cada mês e qualquer dia da semana.
*
traduz para every
enquanto H
traduz para any
. Por enquanto * * * * *
significa cada minuto H * * * *
significa construir uma vez a cada hora, mas eu não me importo com o minuto exato (pode estar em qualquer lugar entre 0-59, se não definido por um intervalo) e H H * * *
significa construir uma vez por dia, mas eu não me importo com a hora.
A sintaxe é:
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.
Se você quiser agendar a cada 3 horas, a sintaxe deve procurar:
* 3 * * * *