¿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-crono
yarn add node-cronFunciones 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.
También en la biblioteca
Envío de SMS en JavaScript (Node.js): API, bibliotecas y ejemplos de código
deepkit/type para TypeScript: guía completa con ejemplos
Aprendizaje automático en C++: descripción general de las bibliotecas clave