¿Cómo programo trabajos en Jenkins?
Agregué un nuevo trabajo en Jenkins, que quiero programar periódicamente.
Desde Configurar trabajo , estoy marcando la casilla de verificación "Construir periódicamente" y en el campo de texto Programar agregué la expresión:
15 13 * * *
Pero no se ejecuta a la hora prevista.
¿Es el procedimiento correcto para programar un trabajo?
El trabajo debería ejecutarse a las 4:20 a. m., pero no se está ejecutando.
Al establecer el período de programación, 15 13 * * *
le indica a Jenkins que programe la compilación todos los días de cada mes de cada año en el minuto 15 de la hora 13 del día.
Jenkins usó una expresión cron y los diferentes campos son:
- MINUTOS Minutos en una hora (0-59)
- HORAS Horas en un día (0-23)
- DAYMONTH Día del mes (1-31)
- MES Mes en un año (1-12)
- DAYWEEK Día de la semana (0-7) donde 0 y 7 son domingo
Si desea programar su compilación cada 5 minutos, esto funcionará:*/5 * * * *
Si desea programar su compilación todos los días a las 8:00, esto funcionará:0 8 * * *
Para las últimas versiones (2014), Jenkins tiene un nuevo parámetro H
(extracto de la documentación del código de Jenkins ):
Para permitir que las tareas programadas periódicamente produzcan una carga uniforme en el sistema,
H
se debe utilizar el símbolo (de "hash") siempre que sea posible.Por ejemplo, usarlo
0 0 * * *
para una docena de trabajos diarios provocará un gran aumento a medianoche. Por el contrario, usarH H * * *
seguiría ejecutando cada trabajo una vez al día, pero no todos al mismo tiempo, y sería mejor utilizar recursos limitados.
Tenga en cuenta también que:
El
H
símbolo puede considerarse como un valor aleatorio en un rango, pero en realidad es un hash del nombre del trabajo, no una función aleatoria, de modo que el valor permanece estable para cualquier proyecto determinado.
Más ejemplos del uso de 'H'
El formato es el siguiente:
MINUTO (0-59), HORA (0-23), DÍA (1-31), MES (1-12), DÍA DE LA SEMANA (0-6)
Se puede insertar la letra H, que representa la palabra Hash, en lugar de cualquiera de los valores. Calculará el parámetro en función del código hash del nombre de su proyecto.
Esto es para que si está compilando varios proyectos en su máquina de compilación al mismo tiempo, digamos a medianoche cada día, no todos comiencen su ejecución de compilación al mismo tiempo. Cada proyecto inicia su ejecución en un minuto diferente dependiendo de su código hash.
También puede especificar que el valor esté entre números, es decir, H(0,30) devolverá el código hash del proyecto donde los posibles hashes son 0-30.
Ejemplos:
Inicio de construcción diariamente a las 08:30 de la mañana, de lunes a viernes: 30 08 * * 1-5
Entre semana se construye diariamente dos veces al día, al mediodía a las 12:00 y a medianoche a las 00:00, de domingo a jueves: 00 0,12 * * 0-4
Comience a construir diariamente al final de la tarde entre las 4:00 p. m. y las 4:59 p. m. o entre las 16:00 y las 16:59, según el hash del proyecto: H 16 * * 1-5
Comience a construir a medianoche: @midnight o comience a construir a medianoche, todos los sábados: 59 23 * * 6
Cada primero de cada mes entre las 2:00 am - 02:30 am: H(0,30) 02 01 * *
Jenkins te permite configurar varias veces, separadas por saltos de línea.
Si necesita construirlo todos los días a las 7 a. m., además de todos los domingos a las 4 p. m., lo siguiente funciona bien.
H 7 * * *
H 16 * * 0