scheduling - ¿Hay una biblioteca de programador de trabajos para node.js?
(11)
¿Hay algún cron como biblioteca que me permita programar alguna función para que se ejecute a cierta hora (15:30 por ejemplo, no x horas a partir de ahora, etc.)? Si no existe este tipo de biblioteca, ¿cómo debería implementarse? ¿Debo simplemente configurar la devolución de llamada para que se llame cada segundo y verificar la hora e iniciar los trabajos programados para la hora o qué?
Esto no será adecuado para todos, pero si su aplicación ya está configurada para tomar comandos a través de un socket, puede usar netcat para emitir comandos a través de cron propiamente dicho.
echo ''mycommand'' | nc -U /tmp/myapp.sock
Estoy usando kue: https://github.com/learnboost/kue . Es bastante agradable.
Las características oficiales y mis comentarios:
- trabajos retrasados.
- Si desea dejar que el trabajo se ejecute en un momento específico, calcule los milisegundos entre ese momento y ahora. Llamar a job.delay (milisegundos) (El doc dice minutos, lo cual es incorrecto). No olvide agregar "jobs.promote ();" cuando inicias trabajos
- trabajo evento y progreso pubsub.
- No lo entiendo
- rica interfaz de usuario integrada.
- Muy útil. Puede verificar el estado del trabajo (hecho, ejecutándose, retrasado) en la interfaz de usuario integrada y no necesita escribir ningún código. Y puede eliminar registros antiguos en la interfaz de usuario.
- desplazamiento infinito
- A veces no funciona. Tienes que refrescar
- Indicación de progreso de UI
- Bueno para los trabajos que consumen mucho tiempo.
- registro de trabajo específico
- Debido a que son trabajos retrasados, debe registrar información útil en el trabajo y verificar más adelante a través de la IU.
- desarrollado por Redis
- Muy útil. Cuando reinicie su aplicación node.js, todos los registros de trabajo seguirán allí y los trabajos programados también se ejecutarán.
- reintentos opcionales
- Bonito.
- capacidades de búsqueda de texto completo
- Bueno.
- RESTful JSON API
- Suena bien, pero nunca lo uso.
Editar:
- kue no es una biblioteca como cron.
- Por defecto, kue no admite trabajos que se ejecutan repetidamente (p. Ej., Todos los domingos).
Puedes usar timexe
Los beneficios son que es fácil de usar, liviano, no tiene dependencias, tiene una sintaxis mejorada en lugar de cron, una resolución en milisegundos y funciona en el navegador.
Instalar:
npm install timexe
Utilizar:
var timexe = require(''timexe'');
var res = timexe("* * * 15 30", function(){ console.log("It''s now 3:30 pm"); });
(Soy el autor)
Tanto node-schedule node-cron como la de node-cron podemos usar para implementar schedullers basados en cron.
NOTA : para generar expresiones cron, puede usar este cron_maker
Todas estas respuestas y nadie ha señalado el paquete de NPM más popular ... cron
Yo soy el autor de node-runnr . Tiene un enfoque muy simple para crear trabajo. También es muy fácil y claro declarar el tiempo y el intervalo. Por ejemplo, para ejecutar un trabajo en cada 10min 20sec,
Runnr.addIntervalJob(''10:20'', function(){...}, ''myjob'')
Para hacer un trabajo a las 10am y a las 3pm diariamente,
Runnr.addDailyJob([''10:0:0'', ''15:0:0''], function(){...}, ''myjob'')
Es así de simple. Para más detalles: node-runnr
later.js es una muy buena biblioteca de "programadores" de JavaScript. Se puede ejecutar en Node.js o en un navegador web.
node-cron hace exactamente lo que describí
node-crontab permite editar trabajos cron del sistema desde node.js. El uso de esta biblioteca le permitirá ejecutar programas incluso después de que termine su proceso principal. Descargo de responsabilidad: soy el desarrollador.
node-schedule Un planificador de trabajos tipo cron y no cron para Nodo.
agenda es una programación de trabajos livianos para el nodo. Esto te ayudara.