2016-08-23 11 views
0

予期せず発生する例外をキャッチするのに私はprocess.on('uncaughtException')を使用しています。関数では、データをファイルに書き込んだり、電子メールを送信したりします。将来的にはより多くのことを行うでしょう。ノード内のグローバル例外マネージャ

process.on()イベントをファイルにカプセル化し、アプリケーションを構成するすべてのファイルに何らかの形でそれを必要とする方法はありますか?そのため、各ファイルにそのコードを追加する必要はありません。

答えて

0

ノードは通常1つのプロセスで実行されるため、1つの場所にはprocess.on('uncaughtException')が必要です。

クラスタモジュールを使用するか、または他のノードプロセスを起動する場合は例外です。この場合、プロセスごとに1度ロードされたprocess.on('uncaughtException')が必要ですが、ファイルごとに1回はロードされません。

この時点ではプロセスが不安定であると考えられるので、あまりにも多くの処理を行うよう注意してください。非同期動作が保証されているかどうかもわかりません。docsは、 'uncaughtException' 割り当てられたリソースのクリーンアップを実行することです。)

+0

Nodeで20個の異なるJSファイルをキックオフするためにPM2を使用しています。それらはすべて、より大きなアプリケーションの一部ですが、それぞれ別々のプロセスとして実行されます。 PM2から始まる各JSファイルにそのコードを入れるだけでいいのですか? – Ken

+0

異なるプロセスを起動している場合は、それぞれのプロセスでイベントをバインドする必要があります。そのリスナーを1つのファイルに入れて、生成しているすべてのプロセスによってロードされた1つのファイルから要求することができます。 – ZachB

関連する問題