現在、いくつかのサブプロセス(System.Diagnostics.Process
)を実行しているサービスがあります。各サブプロセスは何時間も実行することができ、特定の事前定義された状態(「開始」、「作業中」、「クリーンアップ」など - 完全に事前定義され、各状態に添付されたカスタムデータは報告されません)各プロセスは個別のWindowsサービスにすることはできません(Windowsサービス状態よりも多くの状態が存在する可能性があります)。私は何とかこの状態を親サービスに報告する必要があります。すべてのプロセスが同じWindowsマシン上で実行されています。親サービスへのサブプロセス状態の報告
私は、サービスによって開始されたプロセス以外のプロセスからサブプロセス状態を問い合わせることができ、それらのサブプロセスから各サブプロセス状態について親サービスを更新できる必要があります。各プロセスは固有のIDを取得するため、プロセス自体を管理することなく、他のプロセスが状態を簡単に読み取ることができます。すべてのプロセスは、各サブプロセスに固有のIDが割り当てられた構成ファイルを共有します。私はそうのようにそれをすることについて考えた:
- は、すべてのサブプロセスを書く
- 出力で各行を読んで、サービス(
RedirectStandardOutput = true
)にサブプロセスの標準出力をリダイレクトし、 『特別な』行(STATECHANGE:state
)をキャッチその状態が変わるたびに、定義済みの場所にあるファイルに状態を通知し、サービス終了時にそのファイルを削除します。
私は何年も前に解決された問題の解決策を見つけようとしているようで、私はその解決策を見つけられませんでした。そのような州の報告を行うための「良い」方法はありますか?
はい、これはすべてWindowsで実行されていますが、私はこれを明確にするために私の質問を編集しました。これはちょうど私が必要なもののように見える、ありがとう! –