0

多くの独立したコンポーネントが連携してタスクを実行し、すべてのコンポーネントが個別のハートビート スレッドを持つプロジェクトに取り組んでいます。このハートビート スレッドはフォアグラウンド スレッドです。

ハートビート スレッドが停止した場合に備えて、コンポーネントの正常なシャットダウンを有効にしたいと考えています。

さらに情報を追加しています...

たとえば....データベースと対話し、要求に基づいてデータを取得し、クライアント アプリケーションにデータを返す Request Monitor (サーバー コンポーネント) と呼ばれるコンポーネントがあります。このすべてのタスクは、プライマリ スレッドによって実行されます。

また、クライアント アプリケーションでサーバー コンポーネントの正常性をチェックしたいので、サーバー コンポーネントに登録されているクライアント アプリケーションにハートビート メッセージを送信する別のスレッドを作成しました。そのメッセージには、マシン名、プロセス ID などのサーバー情報しか含まれていません。これは、サーバーが稼働しており、着信要求に応答していることを意味するハートビート情報と見なされます。サーバー コンポーネントは、10 分ごとにこの情報を送信します。

このハートビート情報はフォアグラウンド スレッドであるため、このセカンダリ スレッドが停止すると、アプリケーション全体がシャットダウンします。

一部のリソースのクリーンアップ、すでに受信したリクエストの完了など、ハートビート スレッドが停止した場合に備えて、いくつかのタスクを実行したいと考えています。

4

0 に答える 0