Je suis à la recherche d'un planning de travail de nœud qui me permettra de planifier un certain nombre de tâches à différents intervalles. Par exemple,
- appeler la fonction A toutes les 30 secondes
- appeler la fonction B toutes les 60 secondes
- appeler la fonction C tous les 7 jours
Je veux aussi pouvoir démarrer et arrêter le processus.
Jusqu'à présent, j'ai regardé:
plus tard - la syntaxe me confond, aussi apparemment vous ne pouvez pas planifier des tâches au-delà d'un mois
agenda - semble le plus prometteur, mais je ne comprends pas la fonctionnalité de la base de données
calendrier - trop simple, ne peut pas démarrer et s'arrêter
Je trouve la syntaxe de ce dernier déroutante.
node.js
cron
scheduled-tasks
utilisateur379468
la source
la source
Réponses:
Je recommanderais
node-cron
. Il permet d'exécuter des tâches en utilisant des modèles Cron, par exempleMais aussi des horaires plus complexes, par exemple
Exemple de code : exécution du travail toutes les 10 minutes:
Vous pouvez trouver plus d'exemples dans le wiki node-cron
Plus d'informations sur la configuration de cron peuvent être trouvées sur le wiki de cron
J'ai utilisé cette bibliothèque dans de nombreux projets et elle fait le travail. J'espère que cela aidera.
la source
J'ai utilisé node-cron et agenda .
node-cron est une bibliothèque très simple, qui fournit des API très basiques et faciles à comprendre comme crontab. Il n'a besoin d'aucune configuration et fonctionne juste.
agenda est très puissant et adapté à des services beaucoup plus complexes. Pensez à ifttt , vous devez exécuter des millions de tâches. l’ordre du jour serait le meilleur choix.
Remarque: vous avez besoin de Mongodb pour utiliser Agenda
la source
Je pense que le meilleur classement est
et l'exemple de noeud-planning est ci-dessous:
Vous pouvez peut-être trouver la réponse dans les modules de nœuds .
la source
J'ai écrit un module de nœud qui fournit un wrapper autour de setInterval en utilisant des durées de moment fournissant une interface déclarative:
https://www.npmjs.com/package/every-moment
https://github.com/raygerrard/every-moment
la source
node-cron
comme réponse @Tom. et a une belle syntaxe similaire à la vôtre.reel().call(() => console.log('hello !!')).everyMinute().run()
github.com/shakee93/node-reelnodeJS par défaut
https://nodejs.org/api/timers.html
la source
J'ai écrit un petit module pour faire exactement cela, appelé timexe :
Installer:
utilisation:
vous pouvez obtenir la fonctionnalité de démarrage / arrêt en supprimant / en ajoutant à nouveau l'entrée directement dans le tableau de tâches timexe. Mais ce n'est pas une fonction expresse.
la source