私は初心者で、プロセス監視が JXcore でどのように機能するかを理解しようとしています。ドキュメントを見ましたが、サーバー アプリケーションをマルチスレッドで起動して適切に監視するには、いくつかの手順が必要です。
前もって感謝します!
私は初心者で、プロセス監視が JXcore でどのように機能するかを理解しようとしています。ドキュメントを見ましたが、サーバー アプリケーションをマルチスレッドで起動して適切に監視するには、いくつかの手順が必要です。
前もって感謝します!
私はあなたにそれを説明しようとします。新人だから恥ずかしくない!:)
JXcore は、2 種類のアプリケーション監視を提供します。
1) それらの 1 つはProcess Monitorであり、これは別のインスタンスとして実行されるプロセスです。アプリケーションは、監視のためにサブスクライブする場合があります。Monitor はそれらを定期的に検証し、アプリケーションがなくなっていることを検出すると、再起動を試みます。たとえば、アプリケーション サーバーが http であり、常にオンラインである必要がある場合、Process Monitor は、それが実際に実行されていることを確認します。
アプリケーションの監視を開始する最も速い方法は、次のとおりです。
> jx monitor start
> jx monitor run app.js
その後、アプリケーションがクラッシュすると、Process Monitor がアプリケーションを再起動します。アプリケーションのプロセスを強制終了するだけでテストできます。
プロセス モニターは、現在監視されているプロセスに関する情報も提供します。それらのリストを参照して表示できます。
http://127.0.0.1:17777/json
2) 監視機能の 2 番目のタイプは、プロセスとスレッドの回復です。Process Recoveryを使用すると、Process Monitoring と同じことを実現できるため、両方を同時に使用する理由はありません。
別のシナリオは次のとおりです。
マルチスレッド アプリケーションがあり、そのスレッドを回復するだけで十分だとしましょう。
アプリケーションは次のコマンドで起動されます。
jx mt-keep:3 app.js
つまり、3 つのスレッドで実行するということです。
Thread Recovery を有効にするにはprocess.on('restart')
、次のようなイベントにサブスクライブするだけで十分です。
process.on('restart', function (cb) {
process.release();
cb();
});
コールバックを呼び出すことを忘れないでくださいcb()
。おそらくドキュメントで見たように、スレッドはこのコールバックを呼び出すまで再起動しません。再起動する前に、バックアップなどを行ってください。
基本的にはそれだけです。気軽に遊んでください!