Existe-t-il une bibliothèque de planificateur de travaux pour node.js?

Existe-t-il une bibliothèque de type cron qui me permettrait de programmer certaines fonctions à exécuter à un moment donné (15h30 par exemple, pas x heures à partir de maintenant, etc.)? S’il n’y a pas ce genre de bibliothèque, comment cela devrait-il être implémenté? Dois-je simplement appeler le rappel pour qu’il soit appelé toutes les secondes et vérifier l’heure et commencer les travaux programmés pour le moment ou quoi?

node-cron fait exactement ce que j’ai décrit

node-schedule Planificateur de tâches de type cron et non cron pour Node.

agenda est une planification de travail légère pour le noeud. Cela vous aidera.

later.js est une très bonne bibliothèque JavaScript “scheduler”. Peut être exécuté sur Node.js ou dans un navigateur Web.

J’utilise kue: https://github.com/learnboost/kue . C’est plutôt sympa.

Les caractéristiques officielles et mes commentaires:

  1. travaux retardés.
    • Si vous souhaitez laisser le travail s’exécuter à une heure spécifique, calculez les millisecondes entre cette heure et maintenant. Appelez job.delay (millisecondes) (le document indique les minutes, ce qui est faux.) N’oubliez pas d’append “jobs.promote ();” lorsque vous lancez des travaux.
  2. événement professionnel et progrès pubsub.
    • Je ne le comprends pas
  3. interface utilisateur intégrée riche.
    • Très utile. Vous pouvez vérifier l’état du travail (terminé, exécuté, retardé) dans l’interface utilisateur intégrée et vous n’avez pas besoin d’écrire de code. Et vous pouvez supprimer les anciens enregistrements dans l’interface utilisateur.
  4. défilé interminable
    • Parfois, ne fonctionne pas. Devoir rafraîchir
  5. Indication de progression de l’interface utilisateur
    • Bon pour les emplois chronophages.
  6. enregistrement spécifique au travail
    • Étant donné qu’il s’agit de travaux différés, vous devez enregistrer les informations utiles dans le travail et vérifier ultérieurement via l’interface utilisateur.
  7. propulsé par Redis
    • Très utile. Lorsque vous redémarrez votre application node.js, tous les enregistrements de travail sont toujours là et les travaux planifiés s’exécuteront également!
  8. tentatives facultatives
    • Agréable.
  9. capacités de recherche en texte intégral
    • Bien.
  10. API JEST RESTful
    • Ça sonne bien, mais je ne l’utilise jamais.

Modifier:

  1. kue n’est pas une bibliothèque de type cron.
  2. Par défaut, kue ne prend pas en charge le travail qui s’exécute de manière répétée (par exemple, tous les dimanches).

node-crontab vous permet de modifier les tâches système cron à partir de node.js. L’utilisation de cette bibliothèque vous permettra d’exécuter des programmes même après les principaux termes de votre processus. Disclaimer: Je suis le développeur.

Vous pouvez utiliser timexe

Les avantages sont que sa simplicité d’utilisation, sa légèreté, son absence de dépendances, sa syntaxe améliorée par rapport à cron, sa résolution en millisecondes et son fonctionnement dans le navigateur.

Installer:

 npm install timexe 

Utilisation:

 var timexe = require('timexe'); var res = timexe("* * * 15 30", function(){ console.log("It's now 3:30 pm"); }); 

(Je suis l’auteur)

Je suis l’auteur de node-runnr . Il a une approche très simple pour créer du travail. C’est aussi très facile et clair de déclarer l’heure et l’intervalle. Par exemple, pour exécuter un travail toutes les 10min 20sec,

 Runnr.addIntervalJob('10:20', function(){...}, 'myjob') 

Faire un travail à 10h et à 15h tous les jours,

 Runnr.addDailyJob(['10:0:0', '15:0:0'], function(){...}, 'myjob') 

C’est si simple. Pour plus de détails: https://github.com/Saquib764/node-runnr

Node-schedule et node-cron peuvent être utilisés pour implémenter les planificateurs basés sur cron.

NOTE : pour générer des expressions cron, vous pouvez utiliser ce cron_maker

Cela ne conviendra pas à tout le monde, mais si votre application est déjà configurée pour prendre des commandes via un socket, vous pouvez utiliser netcat pour émettre des commandes via cron proprement dit.

 echo 'mycommand' | nc -U /tmp/myapp.sock 

Toutes ces réponses et personne n’a montré le paquet NPM le plus populaire.

https://www.npmjs.com/package/cron