node-cron: Planificador de tareas JavaScript

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 (tareas) según un horario, utilizando la sintaxis de expresiones cron. Es un análogo del planificador de sistema cron en Unix, pero funciona dentro de tu aplicación.

¿Para qué sirve?

La biblioteca es necesaria para automatizar operaciones rutinarias en el servidor: limpieza de base de datos, envío de correos electrónicos masivos, creación de copias de seguridad, actualización de caché, análisis de datos y cualquier otra tarea periódica. Esto evita tener que escribir temporizadores propios y gestionar intervalos de tiempo manualmente.

Instalación

La instalación se realiza a través de npm o yarn:

npm install node-cron

o

yarn add node-cron

Funciones principales

  • Sintaxis simple: utiliza expresiones cron estándar (minutos, horas, días, etc.)
  • Flexibilidad: soporte para segundos, zona horaria opcional, ejecución en días laborables/fines de semana
  • Gestión de tareas: métodos start(), stop(), destroy() para controlar la ejecución
  • Ligereza: no requiere dependencias externas, el tamaño de la biblioteca es mínimo

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

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

// Tarea: mostrar un mensaje cada minutocron.schedule('* * * * *', () => { console.log('La tarea se ejecuta cada minuto');});

// Tarea: todos los días a las 9:30 de la mañanacron.schedule('30 9 * * *', () => { console.log('Tarea diaria a las 9:30');});

// Tarea: todos los lunes a las 8:00cron.schedule('0 8 * * 1', () => { console.log('Lunes, 8:00 — hora del informe');});

// Tarea con segundos: cada 10 segundoscron.schedule('*/10 * * * * *', () => { console.log('Han pasado 10 segundos');});

// Detener la tarea después de 5 segundosconst task = cron.schedule('*/1 * * * * *', () => { console.log('Tarea infinita');});setTimeout(() => { task.stop(); console.log('Tarea detenida');}, 5000);

Cuándo usarlo

Usa node-cron cuando necesites ejecutar código en un momento específico o con una periodicidad determinada dentro de una aplicación Node.js. Es ideal para:

  • limpieza periódica de archivos temporales o registros;
  • envío de notificaciones o correos electrónicos programados;
  • sincronización de datos con APIs externas;
  • generación de informes en segundo plano;
  • ejecución de pruebas o comprobaciones de estado del servidor.

La biblioteca no es adecuada para sistemas distribuidos de alta carga (es mejor usar una cola de tareas), pero para la mayoría de los escenarios típicos es la solución óptima.

Recommendations