7

何らかの理由でサーバーがクラッシュしたときに警告を受け取るにはどうすればよいですか?HopToadまたは他のサービスはそれを行いますか?

ありがとう

編集:

node.jsにHerokuを使用しています。それは私が他に何も実行することを許可しません。他のプロセスを実行することなく、コードを裏返しに監視するための何かが必要です。

ありがとう

4

5 に答える 5

9

node.jsプログラム内でuncaughtExceptionイベントを処理し、そこで「警告」を実行することができます。または、稼働時間ロボットなどのサービスを使用して、アプリが指定されたポートでリッスンしているかどうかを監視することもできます。

于 2011-05-12T08:20:54.327 に答える
2

実際にはかなりの数のオプションがあります!

私の意見では、 monitforeversupervisordは群衆から突き出ているものです。

@ rob-cowieはすでにスーパーバイザーについて回答しているので、ここで「forever」と「monit」に関するいくつかのポインターを取得します。

Monitは、マシン上のサービスを管理するための全体的なソリューションです。サービスがクラッシュしたり、リソースを大量に消費したりした場合は、通知して再起動します。

私はまだmonitの代わりに監視対象のユーザーに正当な理由を見つけていませんが、監視対象のメーリングリストで監視対象を監視するためにmonitを使用する提案を見ました!

于 2011-05-12T08:38:46.400 に答える
1

1つのアプローチは、提供しているページに正常にアクセスできることを定期的に確認することです。http://wasitup.com/を参照してください。

もう1つのアプローチは、マシン上のサーバープロセスを監視することです。これを行う良い方法の1つは、 Supervisordを使用してnode.jsを起動することです。クラッシュしたプロセスを再開し、メールで通知することができます。デプロイメントの例1を含む、インターウェブの周りには多数の例があります

于 2011-05-12T08:20:26.747 に答える
1

未処理の例外をリッスンするクラスをまとめたところです。それが見つかった場合は、次のようになります。

  • スタックトレースをコンソールに出力します
  • 独自のログファイルに記録します
  • スタックトレースをメールで送信
  • サーバーを再起動します(またはサーバーを強制終了します)

私はまだ一般的なものにしていないので、アプリケーションを少し調整する必要がありますが、それはほんの数行であり、あなたが探しているものかもしれません!

アプリ内から実行され、他のファイルを含める必要はありません(メール通知が必要な場合はnodemailer.jsを除く)。

見てみな!

于 2012-05-15T16:39:33.533 に答える
0

まだherokuでnode.jsを使用している場合は、Nodejitsuも一見の価値があります。ノードを強力にサポートし、アプリのクラッシュループなどが発生した場合にメール通知を送信して、永久に実行されます。とても便利な。

また、処理に関する限り、それuncaughtExceptionは避けたいと思います。経験から、それは不安定であり、最新のnode.js apiドキュメントでは、信頼性が低く不安定であることが示されています。http://nodejs.org/api/process.html#process_event_uncaughtexceptionを参照してください

永遠のようなものを使用してください!

于 2013-01-22T12:57:08.003 に答える