2017-08-23 9 views
0

Also hier ist eine Sache, ich habe einige Anwalt App, und er muss Erinnerung für einige Fälle, dass Erinnerung könnte morgen, nächste Woche, nächsten Monat idk gesetzt werden. Ich dachte über die Verwendung von node-cron, Sache ist, ich weiß nicht, was passieren wird, wenn meine App neu gestartet wird, nehme ich an, es wird alle meine Erinnerungen abstürzen, und die zweite Sache ist, wie viel werde ich meinen Server laden, wenn ich zu vielen Erinnerungen, oder tun Hast du einen anderen Ratschlag für diese Lösung, vielleicht etwas mit setInterval und führe es jede Stunde oder so?Node-Cron, wenn Knoten App neu startet

+0

Sie können die Planung in einer Datenbank speichern und 'node-cron' beim Neustart der App neu initialisieren. – tbking

+0

@tbking hmm ich denke, ich könnte es versuchen ... –

+0

Oder eine andere Option ist, Arbeiter Jobs wie in Redis oder Kue zu planen. – tbking

Antwort

1

Knoten-cron wird verwendet, Code auszuführen wie bei normalen Cron, aber in JS :) Also selbst wenn Ihr Code wird zerkleinert und neu gestartet es zum Zeitpunkt von Ihnen eingestellten aussehen wird einige Codes auszuführen und nicht zerdrücken Erinnerungen.

Zum Beispiel, wenn Sie einen Code mit Cron-Bedingung 0 0 1 * * ausführen, was bedeutet, jeden Monat am 1. Datum um 00:00 Uhr.

Das bedeutet, dass Ihre Anwendung am 1. des nächsten Monats um 00:00 Uhr ausgeführt wird, selbst wenn Ihre App am 15. des Monats gequetscht und am 20. des Monats neu gestartet wird.

Zwischen automatisch Ihre Anwendung neu zu starten Sie forever oder pm2 Pakete von NPM können

jetzt über diese Frage.

wie viel ich meinen Server laden, wenn ich

ich zu viel Erinnerungen bekam glaube nicht, dass der Server geladen werden. node-cron intern verwendet setInterval, die CPU nicht verbraucht, also gehen Sie und führen Sie Ihre Crons ohne Angst.

+0

Hmm ty für die Antwort, muss ich einige socket.io Code ausführen, ich meine, ich muss einige Daten emittieren, sind Sie sicher, ich werde alle wissen Sockets mit meiner App verbunden und Broadcast-Nachricht an alle von ihnen, diese Lösung mit Datenbank könnte richtig sein –

+0

Sie werden 'socket.io' in Crons? Wenn Sie wissen möchten, ob Sie Daten ausstrahlen oder jetzt sollten Sie Ihr Programm sicher protokollieren. Ich würde vorschlagen, NoSQL DB oder Datei-Logging mit 'Bunyan' https://www.npmjs.com/package/bunyan. Trotzdem sollte Ihr Code nicht versehentlich zerquetschen. –

+0

Versuchen Sie auch Sentry, um Fehler zu protokollieren https://sentry.io/welcome/ –

Verwandte Themen