node-cron — Programador de tareas para Node.js

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es node-cron?

node-cron es una biblioteca ligera para Node.js que permite ejecutar funciones de JavaScript según un horario, utilizando la sintaxis de expresiones cron de los sistemas UNIX. Es ideal para automatizar tareas rutinarias: limpieza de caché, envío de correos electrónicos, copias de seguridad de bases de datos o monitoreo del servidor.

¿Por qué necesitas un planificador de tareas?

En las aplicaciones web, a menudo es necesario ejecutar código en un momento específico, no solo cuando el usuario lo solicita. En lugar de usar servicios externos (como cron en el servidor), node-cron funciona directamente dentro de tu proceso Node.js. Esto simplifica el despliegue, no requiere configurar el planificador del sistema y es perfecto para aplicaciones contenerizadas (Docker, Kubernetes).

Instalación

La instalación a través de npm se realiza con un solo comando:

npm install node-cron

Después de la instalación, la biblioteca está lista para usar — no se requieren dependencias adicionales.

Funciones principales

  • Horario flexible — soporte para patrones cron estándar (minutos, horas, días, meses, días de la semana).
  • Inicio y detención — cada tarea puede iniciarse o detenerse bajo demanda.
  • Manejo de errores — se puede definir un callback para registrar errores sin que la aplicación se bloquee.
  • Sintaxis simple — solo dos métodos: schedule y validate.

Ejemplo de código en JavaScript (Node.js)

Creemos una tarea que muestre la hora actual en la consola cada minuto:

const cron = require('node-cron');

// Tarea se ejecuta cada minuto: '* * * * *'
cron.schedule('* * * * *', () => {
console.log('Tarea ejecutada:', new Date().toLocaleString());
});

console.log('Planificador iniciado. Presiona Ctrl+C para salir.');

Un ejemplo más complejo: enviar un informe cada día a las 8 de la mañana:

const cron = require('node-cron');

cron.schedule('0 8 * * *', () => {
console.log('Enviando informe diario...');
// Aquí llamas a la función para enviar el correo
}, {
scheduled: true,
timezone: 'Europe/Moscow'
});

Verificar la validez de una expresión cron:

const isValid = cron.validate('*/5 * * * *');
console.log(isValid); // true

¿Cuándo usar node-cron?

  • Automatización de backups — crear un volcado de la base de datos cada noche.
  • Limpieza periódica — eliminar sesiones obsoletas o archivos temporales.
  • Monitoreo — verificar la disponibilidad de servicios y enviar alertas.
  • Envíos — enviar correos electrónicos según un horario (por ejemplo, resúmenes).
  • Actualización de caché — reconstruir la caché en horas de baja actividad.

La biblioteca node-cron es adecuada para proyectos de cualquier tamaño, desde scripts simples hasta arquitecturas de microservicios. No requiere dependencias externas y funciona de manera estable incluso con un tiempo de actividad prolongado.

Recommendations