Soy nuevo en Jenkins. Tengo un trabajo que necesito programar cada 1 hora.
estoy usando
* */1 * * *
pero no funciona de manera efectiva.
Proporcione cualquier otra solución.
@hourly
or0 * * * *
Soy nuevo en Jenkins. Tengo un trabajo que necesito programar cada 1 hora.
estoy usando
* */1 * * *
pero no funciona de manera efectiva.
Proporcione cualquier otra solución.
@hourly
or0 * * * *
Respuestas:
Jenkins usa la expresión cron como se explica aquí
Para programar cada hora, entonces puedes poner
0 * * * *
Entonces su trabajo se ejecutará cada hora (07:00, 08:00, 09:00 y así sucesivamente)
ACTUALIZAR
Como explicación sobre su configuración original, sintaxis
* */1 * * *
ejecutará el trabajo cada minuto.
ACTUALIZACIÓN 2
Como se solicitó en el comentario, aquí la sintaxis para programarlo cada 3 horas
0 */3 * * *
La sintaxis */n
significa que los trabajos se programarán cada n
hora
Jenkins sugiere de esta manera:
H * * * *
H
valores codificados en lugar de valores
Sé que este es un hilo viejo pero estoy respondiendo porque aparentemente la gente todavía aterriza aquí.
La respuesta principal ya no debería usarse.
Jenkins introdujo un valor H
.
Este campo sigue la sintaxis de cron (con pequeñas diferencias). Específicamente, cada línea consta de 5 campos separados por TAB o espacios en blanco:
MINUTO HORA DOM MES DOW
- MINUTO Minutos dentro de la hora (0–59)
- HORA La hora del día (0–23)
- DOM El día del mes (1–31)
- MES El mes (1–12)
- DOW El día de la semana (0–7) donde 0 y 7 son domingos.
Para especificar varios valores para un campo, están disponibles los siguientes operadores. En el orden de precedencia,
*
especifica todos los valores válidosM-N
especifica un rango de valoresM-N/X
o*/X
pasos por intervalos de X a través del rango especificado o rango válido completoA,B,...,Z
enumera múltiples valoresPara permitir que las tareas programadas periódicamente produzcan una carga uniforme en el sistema, el símbolo H (para "hash") debe usarse siempre que sea posible. Por ejemplo, usar 0 0 * * * para una docena de trabajos diarios causará un gran aumento a la medianoche. En contraste, usar HH * * * aún ejecutaría cada trabajo una vez al día, pero no todos al mismo tiempo, mejor usando recursos limitados.
El símbolo H se puede usar con un rango. Por ejemplo, HH (0-7) * * * significa algún tiempo entre las 12:00 a.m. (medianoche) y las 7:59 a.m. También puede usar intervalos de pasos con H, con o sin rangos.
El símbolo H puede considerarse como un valor aleatorio en un rango, pero en realidad es un hash del nombre del trabajo, no una función aleatoria, por lo que el valor permanece estable para cualquier proyecto dado.
Tenga en cuenta que para el campo del día del mes, los ciclos cortos como * / 3 o H / 3 no funcionarán de manera consistente cerca del final de la mayoría de los meses, debido a la duración variable de los meses. Por ejemplo, * / 3 se ejecutará los días 1, 4, ... 31 días de un mes largo, luego nuevamente el día siguiente del mes siguiente. Los hashes siempre se eligen en el rango de 1-28, por lo que H / 3 producirá una brecha entre las ejecuciones de entre 3 y 6 días al final de un mes. (Los ciclos más largos también tendrán longitudes inconsistentes, pero el efecto puede ser relativamente menos notable).
Entonces la respuesta correcta para construir una vez por hora es
H * * * *
por cada 3 horas
H H/3 * * *
La diferencia entre *
y H
también podría explicarse como
*
se traduce a CADAH
se traduce a CUALQUIERAEntonces eg
* * * * *
se traduce en: Construir cada minuto, cada hora, todos los días del mes, todos los meses, no importa qué día de la semana sea.
H * * * *
se traduce en: Construir una vez cada hora (x), no importa qué minuto exacto sea (puede ser cualquier minuto entre x: 00 yx: 59)
H H * * *
se traduce en: Construir una vez al día, no importa qué hora sea (puede ser cualquier minuto y cualquier hora entre las 00:00 y las 23:59)
La razón por la que debería preferir usar H
valores de tiempo en lugar de codificados también se explica como antes
Si tiene 100 trabajos configurados con
0 0 * * *
todos tratarán de comenzar al mismo tiempo causando, por ejemplo, una gran cantidad de encuestas y atraer tráfico a la medianoche.
Si los tiene en su lugar, todos configurados
H H * * *
Todos se construirán una vez al día, pero no todos al mismo tiempo, sino que se distribuirán a lo largo del día.
Puede planificar mejor el calendario utilizando los rangos de tiempo, por ejemplo
H H(18-23) * * *
Todos los trabajos se construirán todos los días en cualquier momento entre las 18:00 y las 23:59.
Incluso es posible programar trabajos que cruzan la medianoche, por ejemplo, para construir entre las 19:00 p.m. y las 5:00 a.m.
Pero dado que cron generalmente no permite esto, puede usar un truco usando una zona horaria shiftet.
Por ejemplo, estoy viviendo en la zona horaria MEZ que es GMT + 1 y quiero crear todos los trabajos entre las 19:00 p.m. y las 5:00 a.m. Para hacerlo, cambio mi zona horaria completa por 5 horas usando
TZ=Etc/GMT+6
Luego uso un rango de desplazamiento para las horas que comienzan a las 14:00 (-> +5 = 19:00 pm) y terminan a las 23:59 (-> +5 = 4:59 am)
H H(14-23) * * *
* */1 * * *
es correcto, funciona cada hora
Intente usar la función H para que todo el trabajo no sondee al mismo tiempo a svn
H H/1 * * *
Debería hacer magia. Si el trabajo tarda más en finalizar o si está haciendo la funcionalidad de activación de compilación. Aumente el tiempo o use el complemento jenkins para detener la compilación hasta que finalice la compilación anterior.
https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin
* * * * *
=> corriendo cada minuto. Para correr entre cierto rango, lo usa como * 1-2 * * *
<- esto se ejecuta cada minuto entre la 1:00 a.m. y la 1:59 a.m.
* * 1-2 * *
?
* 1-2 * * *
. La primera posición es para Minute of our
, la segunda para hour of day
, la tercera day of month
, cuarta month of year
y quinta day of week
(en casos especiales también permite una sexta year
). Por lo que su línea * * 1-2 * *
se traduce "cada minuto, cada hora, el primer y segundo día de cada mes y cualquier día de la semana.
*
traduce a every
mientras que se H
traduce a any
. Entonces, mientras que * * * * *
significa cada minuto, H * * * *
significa construir una vez cada hora, pero no me importa el minuto exacto (puede estar entre 0-59 si no está definido por un rango) y H H * * *
significa construir una vez al día, pero no me importa a qué hora.
La sintaxis es:
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.
Si desea programar cada 3 horas, la sintaxis debería verse:
* 3 * * * *