2017-08-23 11 views
0

ここには事がありますが、私は弁護士アプリを持っており、明日、来週、来月の予定であることを通知する必要があります。私はnode-cronを使用することを考えていた、事は私のアプリが再起動したときに何が起こるかわからない、私はすべてのリマインダをクラッシュすると仮定し、2番目の事は、私は多くのリマインダーになった場合、この解決策のための他のアドバイスをいくつか持っているかもしれません。おそらくsetIntervalを使って何かを実行し、それを1時間ごとに実行していますか?ノードアプリケーションが再起動した場合のノードクーロン

+0

スケジューリングをデータベースに保存し、アプリの再起動時に 'node-cron'を再初期化することができます。 – tbking

+0

@bkinghmm私はそれを試すことができると思います... –

+0

また、RedisやKueのように作業員の仕事をスケジュールすることもできます。 – tbking

答えて

1

node-cronは普通のcronと同じようにコードを実行しますが、JSの場合は です。コードが破損して再起動しても、あなたが設定したコードが実行されたときに、リマインダー。

例えば、cron条件0 0 1 * *でコードを実行すると、1日目の00:00に毎月を意味します。

これは、アプリが月の15日に粉砕され、20日に再開されたとしても、次の月の00:00にジョブを実行することを意味します。自動的にこの質問について今NPM

からforeverまたはpm2パッケージを使用することができますあなたのアプリを再起動するための間

どのくらい私は私がずっとリマインダ

になった場合、私はそれはあなたのサーバーをロードするとは思わない私のサーバーをロードします。 node-cronは内部的にはCPUを消費していないsetIntervalを使用していますので、恐れずにcronを実行してください。

+0

応答のために、私はいくつかのsocket.ioコードを実行する必要がある、私はいくつかのデータを放出する必要があることを意味する、ソケットは私のアプリに接続し、それらのすべてにブロードキャストメッセージを、このデータベースのソリューションは右に –

+0

あなたはcronsの中で 'socket.io'を実行するでしょうか? データを送信するかどうかを知りたければ、今度は確実にプログラムを記録しておく必要があります。私は、NoSQL DBや 'bunyan' https://www.npmjs.com/package/bunyanでのログ記録を提案します。 とにかく、あなたのコードは誤って押しつぶされるべきではありません。 –

+0

また、Sentryでエラーを記録するようにしてください。https://sentry.io/welcome/ –

関連する問題