Cron & Scheduling

cron de Jenkins · Entiende el rango antes de programar

Crea una expresión Core y revisa sus rangos H y el fragmento Pipeline correspondiente.

cron de Jenkins

Expresión

La entrada se procesa en este navegador y no se envía a ningún servidor.

Explicación y fragmento Pipeline

Opciones

Constructor por campos

Estos campos son un borrador. Solo Aplicar sustituye la expresión superior; el texto pegado sigue siendo la entrada que se valida.

H/15 * * * *

Minuto 0–59; hora 0–23; día 1–31; mes 1–12; semana 0–7. Listas numéricas, rangos, */paso, rango/paso o H; no número aislado/paso.

La entrada o las opciones han cambiado. Actualiza los resultados antes de exportarlos.

El cron de Jenkins usa H para repartir tareas y conservar un valor estable para cada trabajo. Aquí se distinguen los valores fijos de los posibles inicios, sin convertir un hash desconocido en una hora que parezca confirmada.

Pega una expresión cron o utiliza el generador cron de cinco campos. Para una compilación programada elige cron; para consultar cambios en el repositorio, pollSCM. La sintaxis puede ser la misma, pero el propósito del disparador cambia.

Por qué revisar el cron de Jenkins

Separar intervalo y punto de partida

En el cron de Jenkins, */15 selecciona los minutos 0, 15, 30 y 45. H/15 parte de un valor entre 0 y 14 y avanza de 15 en 15. Los posibles inicios se muestran como candidatos, no como una lista de ejecuciones reales.

Dos líneas de tiempo comparan cuatro marcas alineadas con cuatro marcas desplazadas de forma uniforme.

Mantener las marcas dentro del rango

H(0-29)/10 comienza entre 0 y 9 y solo selecciona minutos de la primera media hora. El límite 29 impide que la secuencia siga por la segunda mitad. El informe conserva tanto el inicio posible como el extremo del intervalo.

Tres marcas equidistantes aparecen solo en la primera mitad resaltada de una línea de tiempo.

Revisar el borrador antes de sustituir la entrada

01

Aplicar después de la vista previa

Las plantillas cambian únicamente los cinco campos del borrador. La vista previa compara las expresiones y sus tamaños. Aplicar sustituye la entrada; Deshacer recupera juntos el texto, las opciones y el resultado anterior.

02

Usar el nombre como referencia

Puedes anotar el nombre completo del trabajo, incluidas sus carpetas. Es contexto para el informe y no activa el cálculo del hash. Los rangos siguen siendo candidatos incluso si has escrito el nombre exacto.

03

Actualizar con el disparador correcto

cron solicita compilaciones periódicas y pollSCM consulta cambios. El análisis automático espera 350 ms. Si lo desactivas, usa el botón o Ctrl/Cmd + Intro. Al cambiar datos se bloquea la exportación hasta tener un resultado actualizado.

Leer las condiciones que forman el disparador

Cinco campos numéricos

Minuto, hora, día del mes, mes y día de semana aceptan listas, rangos inclusivos y pasos sobre rangos o asteriscos. Se eliminan duplicados y el domingo 7 se combina con 0 en el informe numérico; la expresión original conserva su escritura.

Cada elemento H por separado

H(10-20)/4 permite inicios de 10 a 13. Según el inicio cambia la cantidad de valores seleccionados, por lo que no se promete un número fijo de ejecuciones. Las listas mixtas conservan las condiciones de cada valor o hash.

Alias según los valores predeterminados

Se reconocen siete alias, incluido @annually. @monthly se expande a H H H * *, con día elegido por hash. @midnight equivale a H H(0-2) * * *, una ventana nocturna que no garantiza las 00:00.

Fragmentos para dos disparadores

Copia la expresión o el bloque triggers con cron o pollSCM. Descarga el informe de texto para conservar las condiciones y la nota del trabajo. Los nombres introducidos libremente nunca se insertan en código Groovy ejecutable.

Límites de la sintaxis y de la previsión

Sin horas resueltas por trabajo
No se reproduce la secuencia aleatoria Java, el estado hash compartido por varias líneas ni el contexto horario del controlador. Tampoco los cambios del administrador sobre los alias. Comprueba el horario del trabajo en tu instancia de Jenkins.
Una línea de Core
La expresión admite 512 unidades UTF-16 y el nombre, 1024. No se aceptan segundos, año, JAN/MON, ?, L, W, #, 5/15, cabeceras TZ=, comentarios, comandos ni Jenkinsfiles completos. Utiliza H en mayúscula.
Día del mes y semana se combinan con AND
Ambas condiciones tienen que cumplirse. Un 31 de febrero puede pasar la revisión sintáctica aunque no exista. H en el día usa 1–28 por defecto; H(29-31) puede elegir fechas ausentes. Los pasos diarios no mantienen una duración constante al cambiar de mes.
H/1 selecciona un solo valor
H/1 funciona como H; */1 selecciona todos los valores. Un paso hash mayor que 1 debe caber en su rango. Diferentes trabajos pueden coincidir pese al reparto. Esta página no se conecta a Jenkins ni registra o ejecuta trabajos.

Preguntas sobre el cron de Jenkins

¿Qué significa H/5?

En el campo de minutos, el inicio estable está entre 0 y 4 y después avanza de cinco en cinco dentro de la hora. H/5 3,21 * * 1-5 aplica ese patrón de lunes a viernes durante las horas 3 y 21. No significa una sola ejecución en cinco minutos.

¿Cómo programo trabajos en Jenkins?

Configura Build periodically en el trabajo o coloca el bloque triggers en una Pipeline declarativa. cron solicita compilaciones incluso si no cambió el código. Jenkins debe cargar la configuración y disponer de ejecutores para realizar el trabajo.

¿Jenkins admite varias zonas horarias?

Una configuración completa de Core admite una línea TZ= con un identificador disponible en Java. Si no se indica, se usa la zona del controlador. Este generador recibe una expresión sin cabecera y no calcula horarios con la zona del navegador.

¿Qué diferencia hay entre Poll SCM y Build periodically?

Poll SCM consulta el repositorio y genera una compilación cuando detecta cambios. Build periodically la solicita sin depender de ellos. Elige pollSCM para preparar el fragmento de consulta y comprueba en Jenkins el comportamiento del repositorio configurado.

¿Cómo ejecuto un trabajo el último día de cada mes?

Core no dispone del selector L para fin de mes. Puedes programar una tarea diaria que compruebe la fecha o usar un complemento de temporización adecuado. @monthly elige por defecto un día de 1 a 28, por lo que no representa el último día.

¿Una fecha inesperada?

Confirmar la programación en el controlador

Usa el cron de Jenkins para revisar las condiciones y copia el fragmento adecuado en tu configuración. Consulta la vista del trabajo en el controlador antes de depender de una hora precisa.

Una sintaxis válida no garantiza el inicio ni el éxito de una compilación.