Ir al contenido

Expresiones cron

Una expresión cron es un texto compacto que describe cada cuánto debe ejecutarse un trigger programado. Nexus usa el formato estándar de 5 campos.

Si nunca has visto una, no te asustes: son cinco números (o *) separados por espacios, cada uno indicando un componente del horario.

┌───────── minuto (0 - 59)
│ ┌─────── hora (0 - 23)
│ │ ┌───── día del mes (1 - 31)
│ │ │ ┌─── mes (1 - 12)
│ │ │ │ ┌─ día de semana (0 - 7; 0 y 7 = domingo)
│ │ │ │ │
* * * * *

Cada campo responde una pregunta: ¿en qué minuto?, ¿en qué hora?, etc. Un * significa “cualquiera”. La ejecución ocurre cuando todos los campos coinciden con el momento actual.

Lectura rápida: 0 8 * * 1-5 → minuto 0, hora 8, cualquier día del mes, cualquier mes, días de semana de lunes(1) a viernes(5) ⇒ “de lunes a viernes a las 8:00”.

ExpresiónSignificado
0 6 * * *Todos los días a las 6:00 a.m.
0 8 * * 1-5De lunes a viernes a las 8:00 a.m.
0 8 * * 1Todos los lunes a las 8:00 a.m.
30 18 * * *Todos los días a las 6:30 p.m.
0 0 1 * *El primer día de cada mes a medianoche
0 0 1 1 *Cada 1 de enero a medianoche (anual)
*/15 * * * *Cada 15 minutos
0 * * * *Cada hora en punto
0 7,12,18 * * *A las 7:00, 12:00 y 18:00 todos los días
0 9-17 * * 1-5Cada hora en punto, de 9 a 17, de lunes a viernes
CarácterSignificadoEjemplo
*Cualquier valor* * * * * = cada minuto
,Lista de valores1,3,5 = los días/valores 1, 3 y 5
-Rango1-5 = del 1 al 5
/Paso (cada N)*/10 = cada 10; 0/15 = 0,15,30,45

Puedes combinarlos: 0 8-10,14 * * 1-5 se ejecuta a las 8, 9, 10 y 14 horas, de lunes a viernes.

La expresión cron se evalúa en la zona horaria del trigger, no en UTC por defecto. 0 8 * * * con zona America/Bogota se ejecuta a las 8:00 hora de Colombia. Configura siempre la zona al crear el trigger programado.

SíntomaCausa
Se ejecuta a una hora distinta de la esperadaZona horaria mal configurada
No se ejecuta nuncaCombinación imposible (ej. día 31 en meses que no lo tienen) o trigger desactivado
Se ejecuta demasiado seguido* donde querías un valor fijo (ej. * 8 * * * se ejecuta cada minuto de las 8, no a las 8:00)

El último es el error más común: para “a las 8:00 en punto” el minuto debe ser 0 (0 8 * * *), no *.