Como Programar Tareas en Node JS

6 minuto(s)

¿ Alguna vez has querido que una tarea se ejecute un día y hora en Node JS ?, es decir programar una tarea. La programación de tareas es una práctica a veces necesaria en las aplicaciones modernas. En informática se denomina cron jobs, a la programación de tareas y en Node JS también se aplica la misma lógica. En este Post te enseñare a Como Programar Tareas en Node JS para que lo realizes en tus proyectos y sean más dinámicos, vamos con ello.

Antes de continuar con este Post, te invito a leer los siguientes artículos:

Asimismo te invito a escuchar el Podcast: “Razones Por Las Cuales Te Cuesta Aprender A Programar” “La Inteligencia Artificial (IA) y el Machine Learning (ML) Siempre Trabajan de la Mano” (Anchor Podcast): 

Spotify: Sound Cloud: Apple Podcasts Anchor Podcasts

Bien ahora continuemos con el Post: Como Programar Tareas en Node JS. 

Creación de Nuevo Proyecto en Node JS

Primero creo un proyecto ejecutando el comando npm init en mi consola de comandos:


Todos los datos del proyecto creado se guardan dentro del archivo package.json

Como Programar Tareas en Node JS

Ahora vamos a usar el paquete node-cron, este nos permite programar tareas cron en varias aplicaciones de Node JS. Instalamos este paquete ejecutando el siguiente comando en nuestra consola de comandos:


Con ello ya podemos usar el paquete node-cron en nuestro proyecto.

Para programar tareas con node-cron debemos invocar al método cron.schedule(), su sintaxis es la siguiente:


Es importante conocer que el tiempo en node-cron se compone de 6 elementos, separados por un espacio:


Podemos separar cada asterisco con uno de los siguientes caracteres para que la expresión describa la hora en que queremos que se ejecute el trabajo:

  • “*”: El asterisco significa cada intervalo. Por ejemplo, si el símbolo de asterisco está en el mes, significa que la tarea se ejecutará todos los meses.
  • “,”: La coma nos permite especificar una lista de valores para repetir. Por ejemplo, si tenemos 1, 3, 5 en el campo mes, la tarea se ejecutará en los meses 1,3 y 5 (enero, febrero y mayo).
  • “-“: El guión nos permite especificar un rango de valores. Por ejemplo, si tenemos 1 -5 en el campo día de la semana, la tarea se ejecutará todos los días de la semana (de lunes a viernes).
  • “/”: La barra inclinada o slash nos permite especificar expresiones como “cada intervalo x”. Si tenemos */4 en el campo hora, significa que la acción se realizará cada 4 horas.

El elemento segundo se puede tomar como opcional.

Si no estás seguro de escribir expresiones cron manualmente, puedes usar herramientas gratuitas como Crontab Generator o Crontab.guru para generar expresiones cron.

Otro paquete que usaré en este proyecto es express, lo instalo ejecutando el siguiente comando, en mi consola de comandos:


Ahora creamos un archivo llamado app.js para nuestro proyecto, tu le puedes poner el nombre que desees. El archivo app.js debe estar junto con el archivo package.json que contiene los datos de nuestro proyecto Node JS.


Abro el archivo app.js y agrego el siguiente código (He colocado comentarios para explicar que hace cada línea de código):


En el código anterior, mostramos un par de mensajes en la consola de comandos, primero mostramos 5 emojis de reloj y debajo el mensaje “Ejecutando una tarea cada 5 segundos”.

Con ello ya estamos ejecutando una tarea cada cierto tiempo, ahora ejecutaré un poco más de código JavaScript. Haré que cada 5 segundos me formatee la fecha actual y la muestre en consola:


En el código anterior estamos ejecutando la función mostrarFecha() para que formatee la fecha actual obtenida con el métdo new Date() de JavaScript.

Nota: Hay formas más prácticas de formatear una fecha con JavaScript, pero he colocado un código extenso para que veas que igual lo ejecuta node-cron

Conclusión

En este Post creamos una par de ejemplos para demostrar cómo programar tareas en un servidor Node JS y el vimos conceptos de como usar usar el paquete node-cron para automatizar y programar tareas repetitivas o futuras. Podemos usar esta idea en proyectos actuales y futuros.

Hay otros paquetes NPM para programar tareas en Node JS, como node-schedule, agenda, bree, cron y bull. Asegúrate de evaluar cada una para encontrar la que mejor se adapte a tu proyecto.

Nota (s)

  • No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo. 

Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.