Node.js: Tareas cron

Automatice tareas de manera efectiva en Node.js con tareas cron

👋 ¡Bienvenido a la documentación de Stackhero!

Stackhero le ofrece un entorno Node.js en la nube listo para usar, diseñado para ayudarle a avanzar más rápido:

  • Despliegue en producción en segundos con un simple git push. No necesita herramientas adicionales ni configuraciones manuales.
  • Utilice su propio dominio y benefíciese de certificados HTTPS automáticos, manteniendo su aplicación segura sin configuraciones extra.
  • Copias de seguridad automáticas, actualizaciones con un solo clic y precios predecibles le permiten centrarse en desarrollar funcionalidades, mientras Stackhero gestiona la infraestructura por usted.
  • Basado en infraestructura privada y dedicada para un rendimiento constante y una seguridad robusta.

Ahorre tiempo y reduzca la carga operativa: puede tener su aplicación funcionando en el hosting Node.js en la nube de Stackhero en solo unos minutos.

Al desarrollar aplicaciones en Node.js, automatizar tareas repetitivas como el envío de correos electrónicos programados, la limpieza de datos expirados o el mantenimiento regular puede mejorar significativamente tanto la eficiencia como la escalabilidad. El módulo cron, disponible en npm (módulo cron en npm), ofrece una forma sencilla y efectiva de implementar dicha automatización.

Nota: Aunque el módulo npm node-cron es otra herramienta disponible para tareas cron, esta guía se centra específicamente en el módulo cron y su implementación.

Para comenzar a usar el módulo cron en su proyecto, inclúyalo como una dependencia ejecutando el siguiente comando:

npm install cron

Una vez instalado el módulo, puede comenzar a programar y gestionar tareas cron en su aplicación. Aquí tiene un ejemplo práctico:

const cron = require('cron');
const cronJobs = [];

// Manejar de manera adecuada el cierre de la aplicación deteniendo todas las tareas cron programadas.
// Al desplegar nuevo código o cerrar la aplicación, se envía una señal de terminación (SIGTERM).
// Esto asegura que la aplicación detenga todas las tareas cron en ejecución antes de salir.
process.on('SIGTERM', () => {
  cronJobs.forEach(cronJob => cronJob.stop());
});

// Programar una tarea cron para ejecutarse cada segundo.
cronJobs.push(
  new cron.CronJob(
    '* * * * * *', // Programación: Cada segundo
    () => {
      console.log("Este mensaje aparecerá cada segundo.");
    },
    null,
    true
  )
);

// Programar una tarea cron para ejecutarse cada minuto.
cronJobs.push(
  new cron.CronJob(
    '0 */1 * * * *', // Programación: Cada minuto
    () => {
      console.log("Este mensaje aparecerá cada minuto.");
    },
    null,
    true
  )
);

El módulo cron utiliza la sintaxis estándar UNIX cron para definir las programaciones. Aquí hay algunos ejemplos comunes:

  • Cada segundo: * * * * * *
  • Cada 30 segundos: */30 * * * * *
  • Cada 10 minutos: 0 */10 * * * *
  • Cada 2 horas: 0 0 */2 * * *

Ahora está preparado para automatizar tareas utilizando el módulo cron en sus aplicaciones Node.js. Para obtener información y ejemplos más detallados, visite el repositorio oficial del módulo cron y consulte el directorio de ejemplos.