サービスがまだ実行されているかどうかを確認する最善の方法について質問があります。
最初に少し説明を。私が持っているサービスは、コマンド ラインから実行するか、Windows サービスとして実行できる C# アプリケーションです。このサービスの機能は、リモートのサード パーティ データ ソースへの変更を確認し、それらの変更を処理してからローカル データ ストアに追加することです。
何らかの理由でサービスが停止したことを特定し、これが発生したときにできるだけ自動的に誰かに通知できるようにしたいと考えています。これは、サービスが Windows サービスとして実行されているか、コマンド ラインから実行されているかに関係なく発生する必要があります。
ローカル データ ストアの変更を監視し、変更が一定時間行われなかった場合に通知することを既に検討しましたが、サード パーティのデータ ソースへの変更の頻度が変動するため、これは少し一貫性がないことが判明しました。 、つまり、変更が長期間行われていないからといって、サービスが機能しなくなったことを必ずしも示すわけではなく、単に変更がない可能性があります。
これを監視する方法について何か提案はありますか? 似たようなものを扱った経験のある人はいますか?
ありがとう、M
編集1 サービスがどのように機能するかを大まかに説明するために:サードパーティサービスは、新しい/更新されたデータが利用可能になるとイベントを発生させるため、サービスは座ってこれらのイベントが発生するのを待ち、発生したイベントで返されたデータを処理します。したがって、「サービスがクラッシュした」のではなく、「変更がない」場合を特定するのが難しいのはこのためです。
編集 2 少し明確にする必要があると思います: この監視の主な理由は、サービスまたはサードパーティ サービスへの接続に関する潜在的な問題についてユーザーに通知することです。サービス自体はシングル スレッドであり、適切な例外処理とログ記録を備えています。このサービスはどこかのサーバーで実行される可能性が高いため、サービスに問題があり、何らかの理由でローカル データ ストアの更新が停止した場合は、サービスが誰かに通知する必要があります。