2017-05-17 18 views
0

私はwebServicesのためにノードサーバを使用したアプリケーションを作成します。私のアプリケーションは、予約する機能を持って飛行&映画チケット&バスチケット&より多くの..ノードスケジューラノードサーバクラッシュ時のタスクを破棄

私はちょうどなど、ユーザーの飛行/バスタイム/映画/の2時間前に予約するためにユーザにリマインダーメッセージを送信する必要が

...

ので、私は(私はクラウドていない)とforeverモジュール/パッケージを使用家賃のLinuxサーバーを使用

...それはあなたがダイナミックcronジョブのこの種を設定することができNode-Scheduler使用。

私のノードサーバーがクラッシュするたびに、永遠に何をするのですか?自動的に再起動します。ノードサーバーがクラッシュすると、ノードスケジューラーのcronジョブがスケジューラージョブを破棄します。

私はmySqlデータベースを使用しています。 so ...

この問題を解決するソリューションはありますか?

答えて

0

タイマージョブの詳細をDB /またはファイル に保存し、トランザクションアプローチを使用してタイマージョブを作成/管理します。

サーバーの起動時に、ファイル/ DBからジョブをロードします。 これは物事の一貫性を維持するはずです。

スケーラビリティを向上させるには、node-serverからスケジューリングアプリケーションコードを別のプロセスとして実行する必要があります。この方法で、スケジューラはノードサーバーアプリケーションを停止しません。

高いスケーラビリティを実現するには、サービス(スケジューラとウェブサービス)をマイクロサービスとして、おそらくSenecaJSのようなマイクロサービスツールキットを使用して接続してみてください。

+0

私はあなたの意見を持っていますが、別のプロセス(またはスケジューラ専用の別のポートに設定されているノードサーバ)がクラッシュする場合は、同じものになります..ここでもう一度考慮する必要があります。データベースにスケジュールを格納し、過去のジョブスケジューラを確認して、その予約を取り出してリマインダー機能を実行しないようにする必要がありますが、これは進歩的な方法ではないと思います。新しいプロセス(別のポート/サーバー)アイデアだが、そのperticulerサーバークラッシュの場合にはあまりにも動作しません.. –

+0

あなたはノードサーバーのクラッシュを言ったときに私はあなたのノードアプリケーションとしていくつかの問題のためにクラッシュしました。いくつかの問題のためにLinuxマシンがクラッシュすることはありません。 もちろん、サーバーがダウンすると、その上にあるものもすべてダウンします。しかし、そのような種類の障害に対処するには、分散型マイクロサービスを行う必要があります。 –

関連する問題