0

複数のマシンに展開され、同時に実行されて中央のキューでタスクを処理する Windows サービス アプリケーションを実装しました。実行中のサービスのインスタンスごとにログ ファイルがあります。しかし、サービスのすべてのインスタンスを監視し、各サービスによって処理されているタスクの名前や ID などのアプリケーション固有の情報を定期的に取得できるようにしたいと考えています。

各マシンに Web サービスを追加してこれらの読み取り専用情報を公開し、ネットワーク経由でそれらの情報を取得して適切に表示する別のアプリ (おそらく Web アプリ) を作成することを考えています。しかし、これは良いアプローチですか?他の考えはありますか?そして、私は市販の製品を使用しないことを好みます。アドバイスをお願いします。

前もって感謝します!

[以下の実装を回答として提供しようとしています。興味のある方は読んでください。ありがとう。]

4

3 に答える 3

1

ネットワーク経由でこの情報を取得する API がサービスにあれば、実行中のすべてのサーバーのステータスをチェックするクライアントを簡単に作成できます。

これは、いくつのコンピューティング クラスター サービスが動作するかです。それらは実行され、クライアントはタスクをスケジュールしたり、クエリを実行したりできます。ここでは任意のテクノロジを使用できますが、.NET の場合、WCF を使用するとおそらくこれをかなり簡単かつ堅牢にすることができます。

于 2009-08-21T01:14:00.627 に答える
0

I ended up implmeneted something very similar to what Reed Copsey suggested. Since the application is already a Windows service, I define service/data contract for the information that I want to expose and host the WCF on the same service. This solution allows my client, either scheduler or UI app, to retrieve the information from all instances of service running in the cluster.

于 2009-08-22T17:39:18.047 に答える
0

やり過ぎかもしれませんが、System Center Operations Managerを確認してください。アプリケーションだけでなく、多くのマシン (またはデータセンター) にまたがるマシンとデータベースの状態に "ダッシュボード" スタイルの情報を提供する場合は、SCOM を開始するのが適切です。

于 2009-08-21T01:02:54.870 に答える