Ich suche nach einem Knotenjobplan, mit dem ich eine Reihe von Aufgaben in unterschiedlichen Intervallen planen kann. Zum Beispiel,
- Funktion A alle 30 Sekunden aufrufen
- Funktion B alle 60 Sekunden aufrufen
- Funktion C alle 7 Tage aufrufen
Ich möchte auch in der Lage sein, den Prozess zu starten und zu stoppen.
Bisher habe ich mir angesehen:
später - die Syntax verwirrt mich, anscheinend können Sie Aufgaben nicht länger als einen Monat planen
Agenda - scheint die vielversprechendste zu sein, aber ich bin verwirrt über die Datenbankfunktionalität
Zeitplan - zu einfach, kann nicht starten und stoppen
Ich finde die Syntax des letzteren verwirrend.
node.js
cron
scheduled-tasks
user379468
quelle
quelle
Antworten:
Ich würde empfehlen
node-cron
. Es ermöglicht das Ausführen von Aufgaben mit Cron-Mustern, zAber auch komplexere Zeitpläne, z
Beispielcode : Job wird alle 10 Minuten ausgeführt:
Weitere Beispiele finden Sie im Node-Cron- Wiki
Weitere Informationen zur Cron-Konfiguration finden Sie im Cron- Wiki
Ich habe diese Bibliothek in vielen Projekten verwendet und sie macht den Job. Ich hoffe das wird helfen.
quelle
Ich habe Node-Cron und Agenda verwendet .
node-cron ist eine sehr einfache Bibliothek, die sehr einfache und leicht verständliche APIs wie crontab bietet. Es braucht keine Konfiguration und funktioniert einfach.
Die Agenda ist sehr leistungsfähig und für viel komplexere Dienste geeignet. Denken Sie an ifttt , Sie müssen Millionen von Aufgaben ausführen. Agenda wäre die beste Wahl.
Hinweis: Sie benötigen Mongodb , um Agenda verwenden zu können
quelle
Ich denke, das beste Ranking ist
und das Beispiel des Knotenplans ist unten:
Vielleicht finden Sie die Antwort von Knotenmodulen .
quelle
Ich habe ein Knotenmodul geschrieben, das einen Wrapper um setInterval bereitstellt, wobei Momentdauern eine deklarative Schnittstelle bereitstellen:
https://www.npmjs.com/package/every-moment
https://github.com/raygerrard/every-moment
quelle
node-cron
als @ Tom-Antwort verwendet. und hat eine schöne Syntax ähnlich Ihrer.reel().call(() => console.log('hello !!')).everyMinute().run()
github.com/shakee93/node-reelnodeJS default
https://nodejs.org/api/timers.html
quelle
Ich habe dafür ein kleines Modul namens timexe geschrieben :
Installieren:
verwenden:
Sie können die Start / Stopp-Funktionalität erreichen, indem Sie den Eintrag direkt im timexe-Job-Array entfernen / erneut hinzufügen. Aber es ist keine ausdrückliche Funktion.
quelle