Obrigado pela resposta. Está funcionando bem. Mas meu trabalho está levando mais de uma hora para ser executado. Por exemplo, se eu quiser agendar esse trabalho a cada 3 horas, qual seria o compartilhamento syntax.please.
Ajay
Confira minha resposta atualizada :)
masegaloeh
@Ajay Se esta resposta funcionar para o seu problema, por favor considere aceite esta resposta :)
Mesma resposta que outras respostas a uma pergunta com mais de 1 ano de idade.
JakeGould
Isso duplica outra resposta e não adiciona nenhum novo conteúdo. Por favor, não poste uma resposta a menos que você tenha algo novo para contribuir.
DavidPostill
4
A vantagem dessa abordagem é que os jenkins gerenciam as tarefas em uma fila. Talvez alguém já tenha a resposta, mas ainda é útil. Por que ser tão duro se é útil? a resposta com 20 gostos não é tão boa .... bah
juan Isaza
Eu tenho que ir com @juanIsaza. Esta não é uma duplicata, mas na verdade é uma resposta melhor. Jenkins sugere claramente preferir o uso de H em vez de valores codificados
derHugo
7
Eu sei que este é um tópico antigo, mas estou respondendo porque aparentemente as pessoas ainda estão aqui.
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álidos
M-N especifica um intervalo de valores
M-N/X ou */X etapas por intervalos de X até o intervalo especificado ou todo o intervalo válido
A,B,...,Z enumera vários valores
Para 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.
Programar intervalo de tempo
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.
Programar intervalo de tempo cruzando a meia-noite
É 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)
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.
O primeiro é executado a cada minuto entre 1h e 2h, certo?
Eric Wang
@ ErricWang: Não. É o mesmo que * * * * * = & 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
derHugo
@derHugo Você quer dizer * * 1-2 * * ?
Eric Wang
1
@EricWang Não, eu quero dizer * 1-2 * * *. A primeira posição é para Minute of our, o segundo para hour of day, o terceiro day of monthquarto 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.
derHugo
1
A diferença que o autor desta resposta perdeu é que * 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.
derHugo
-5
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:
@hourly
ou0 * * * *
Respostas:
Jenkins usa a expressão cron como explicado Aqui
Para agendar a cada hora, você pode colocar
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
irá executar o trabalho a cada minuto.
ATUALIZAÇÃO 2
Conforme solicitado no comentário, aqui sintaxe para agendar a cada 3 horas
A sintaxe
*/n
significa que os trabalhos serão programados a cadan
horasfonte
Jenkins sugere isso:
fonte
H
em vez de valores codificadosEu 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
.Então a resposta correta para construir uma vez por hora é
para cada 3 horas
A diferença entre
*
eH
poderia ser também explicado como*
traduz para CADAH
traduz para QUALQUEREntã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 é.
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)
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 antesSe você tiver 100 trabalhos configurados com
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
todos eles serão construídos uma vez por dia, mas nem todos ao mesmo tempo, mas distribuídos ao longo do dia.
Programar intervalo de tempo
Você pode planejar melhor o cronograma usando os intervalos de tempo.
Todos os trabalhos serão construídos todos os dias a qualquer hora entre as 18:00 e as 23:59.
Programar intervalo de tempo cruzando a meia-noite
É 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
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)
fonte
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
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
fonte
* * * * *
= & 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 é paraMinute of our
, o segundo parahour of day
, o terceiroday of month
quartomonth of year
e quintoday of week
(em casos especiais também permite um sextoyear
). 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 paraevery
enquantoH
traduz paraany
. Por enquanto* * * * *
significa cada minutoH * * * *
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) eH H * * *
significa construir uma vez por dia, mas eu não me importo com a hora.A sintaxe é:
Se você quiser agendar a cada 3 horas, a sintaxe deve procurar:
fonte