tan seguro que nodejs node funciona framework español ejemplos desventajas como caracteristicas node.js cron scheduled-tasks

node.js - seguro - Necesito un programador Nodejs que permita tareas en diferentes intervalos



nodejs pdf español (6)

Estoy buscando un horario de trabajo de nodo que me permita programar una serie de tareas en diferentes intervalos. Por ejemplo,

  • llamar a la función A cada 30 segundos
  • llama a la función B cada 60 segundos
  • llama a la función C cada 7 días

También quiero poder comenzar y detener el proceso.

Hasta ahora, he visto:

  • later - la sintaxis me confunde, también aparentemente no puedes programar tareas más allá de un mes

  • agenda - parece ser la más prometedora, sin embargo, estoy confundido acerca de la funcionalidad de la base de datos

  • timeplan : demasiado simple, no puede iniciarse ni detenerse

Encuentro que la sintaxis de este último es confusa.


Creo que el mejor ranking es

1.node-schedule

2. más tarde

3.crontab

y la muestra del node-schedule de node-schedule está a continuación:

var schedule = require("node-schedule"); var rule = new schedule.RecurrenceRule(); //rule.minute = 40; rule.second = 10; var jj = schedule.scheduleJob(rule, function(){ console.log("execute jj"); });

Quizás puedas encontrar la respuesta de los módulos de nodos .


He escrito un módulo de nodos que proporciona un contenedor alrededor de setInterval usando duraciones de momento que proporcionan una interfaz declarativa:

npm instala cada momento

var every = require(''every-moment''); var timer = every(5, ''seconds'', function() { console.log(this.duration); }); every(2, ''weeks'', function() { console.log(this.duration); timer.stop(); this.set(1, ''week''); this.start(); });

https://www.npmjs.com/package/every-moment

https://github.com/raygerrard/every-moment


He escrito un pequeño módulo para hacer exactamente eso. Lo puedes encontrar aquí:
https://github.com/paragi/timexe.git
https://www.npmjs.com/package/timexe

Algunas de las características:

  • Es un código simple, pequeño y confiable y no tiene dependencias
  • La resolución es en milisegundos y tiene una alta precisión en el tiempo
  • Cron gusta, pero no compatible (orden inverso y otras Mejoras)
  • Yo también trabajo en el navegador

Instalar:

npm install timexe

utilizar:

var timexe = require(''timexe''); //Every 30 sec var res1=timexe(”* * * * * /30”, function() console.log(“Its time again”)}); //Every minute var res2=timexe(”* * * * *”,function() console.log(“a minute has passed”)}); //Every 7 days var res3=timexe(”* y/7”,function() console.log(“its the 7th day”)}); //Every Wednesdays var res3=timexe(”* * w3”,function() console.log(“its Wednesdays”)}); // Stop "every 30 sec. timer" timexe.remove(res1.id);

puede lograr la funcionalidad de inicio / detención al eliminar / volver a agregar la entrada directamente en la matriz de trabajos timexe. Pero no es una función expresa.


He usado node-cron y agenda .

node-cron es una biblioteca muy simple, que proporciona una API muy básica y fácil de entender, como crontab. No necesita ninguna configuración y simplemente funciona.

var cronJob = require(''cron'').CronJob; var myJob = new cronJob(''00 30 11 * * 1-5'', function(){...}); myJob.start();

la agenda es muy poderosa y adecuada para servicios mucho más complejos. Piensa en ifttt , tienes que ejecutar millones de tareas. la agenda sería la mejor opción.

Nota: necesitas que Mongodb use Agenda

var Agenda = require("Agenda"); var agenda = new Agenda({db: { address: ''localhost:27017/agenda-example''}}); agenda.every(''*/3 * * * *'', ''delete old users''); agenda.start();



Yo recomendaría node-cron . Permite ejecutar tareas usando patrones de Cron, por ejemplo

''* * * * * *'' - runs every second ''*/5 * * * * *'' - runs every 5 seconds ''10,20,30 * * * * *'' - run at 10th, 20th and 30th second of every minute ''0 * * * * *'' - runs every minute ''0 0 * * * *'' - runs every hour (at 0 minutes and 0 seconds)

Pero también horarios más complejos , por ejemplo

''00 30 11 * * 1-5'' - Runs every weekday (Monday through Friday) at 11:30:00 AM. It does not run on Saturday or Sunday.

Código de muestra : trabajo en ejecución cada 10 minutos:

var cron = require(''cron''); var cronJob = cron.job("0 */10 * * * *", function(){ // perform operation e.g. GET request http.get() etc. console.info(''cron job completed''); }); cronJob.start();

Puede encontrar más ejemplos en la wiki de node-cron

Se puede encontrar más información sobre la configuración cron en cron wiki

He estado usando esa biblioteca en muchos proyectos y hace el trabajo. Espero que le ayudará.