Node.js, como lo definen en su página web, es un “entorno de ejecución de JavaScript asíncrono basado en eventos, Node.js está diseñado para crear aplicaciones de red escalables”. Entre las distintas funciones y aplicaciones, presenta los Node.js Schedulers, precisamente nuestro enfoque en este blog.
La programación de tareas, o Jobs en este caso, se refiere al proceso de desencadenar un trabajo, tarea o función en un momento predeterminado o programarla para cuando se den ciertos eventos. La mayoría de los schedulers de tareas se basan en cron, el programador de trabajos basado en el tiempo en sistemas similares a Unix.
Hay varios Node.js schedulers aptos para este entorno de ejecución. En esta ocasión, vamos a aprender cómo utilizar el node-schedule para tareas de temporización
Primero, se comienza con la instalación:
Comando: npm install node-schedule
Para utilizarlo en un método de programación basado en fechas, primero se determina la hora, por ejemplo 21 de noviembre de 2017, a las 5:30
var schedule = require('node-schedule'); var date = new Date(2017, 11, 21, 5, 30, 0); var j = schedule.scheduleJob(date, function(){ console.log('The world is going to end today.'); }); j.cancel (); // Cancelar el plan preestablecido
Luego, los minutos fijos por hora
var schedule = require('node-schedule'); var rule = new schedule.RecurrenceRule(); rule.minute = 42; var j = schedule.scheduleJob(rule, function(){ console.log('The answer to life, the universe, and everything!'); });
Sigue programar la tarea a cierta hora en algunos días de la semana, por ejemplo todos los jueves viernes y sábados a las 17:00
var rule = new schedule.RecurrenceRule(); rule.dayOfWeek = [0, new schedule.Range(4, 6)]; rule.hour = 17; rule.minute = 0; var j = schedule.scheduleJob(rule, function(){ console.log('Today is recognized by Rebecca Black!'); });
Y ejecutamos cada segundo
var rule = new schedule.RecurrenceRule(); var times = []; for(var i=1; i<60; i++){ times.push(i); } rule.second = times; var c=0; var j = schedule.scheduleJob(rule, function(){ c++; console.log(c); });
Con esto terminas de instalar el node-schedule en tu aplicación con ambiente Node.js.
Node es fácil para utilizar, especial para las personas novatas en este campo. Es especialmente utilizado para desarrollar prototipos ágiles. También se utiliza para construir servicios rápidos y escalables, usados para compañías como PayPal, Uber, Walmart.
En PayPal ocurrió un caso especial, reconstruyeron una de sus aplicaciones basadas en Java usando Node, descubriendo que esta última se desarrolló con el doble de rapidez y menos desarrolladores involucrados, 33% menos de líneas de código y 40% menos archivos. Incluso, duplicaron el número de requerimientos servidos por segundo.
En Rootstack, nuestros developers expertos han hecho uso de esta tecnología para dar solución a varios de los problemas tecnológicos de nuestros clientes. Si te consideras un experto en Node.js, puedes formar parte de este equipo, estamos en la búsqueda constante de talento que nos ayude a crear las aplicaciones y sitios web del presente y del en futuro.