1

での実装の提案を求めています

OS: Windows Server 2008 プラットフォーム: ASP.NET、C# DB: MS SQL 2005

シナリオは次のとおりです。

  1. MS SQL の一連の DB テーブルを頻繁な間隔 (たとえば 10 秒) で監視し、すべての重要なエントリを識別する監視デーモンを実装する必要があります。

  2. 分析後のエントリは、重要度またはカテゴリに基づいていくつかのアクションに関連付けられます。したがって、重要なエントリの 1 つが として示されると仮定しACCT_USR_LIMIT_EXECEED : SomeNameます。

3.ACCT_USR_LIMIT_EXECEED : SomeNameメールの送信、DB テーブルの更新クエリの実行、フォルダー サイズの測定、フォルダーの削除、ローカル HDD 内の一部のファイルのクリーンアップなどのアクションに関連付ける必要があります。

分析される重要なエントリの量は、現時点では中程度ですが、増加する余地もあります。

これにどのようにアプローチするか、可能性はあると思います。

  1. アクションを監視およびディスパッチするための Windows サービスを 1 つ作成しますか、それとも、
  2. 2 つの異なるサービスを記述します。1 つはその分析を監視して MSMQ にディスパッチし、もう 1 つはプッシュされた同じ MSMQ エントリを読み取るアクションをディスパッチします。

単一の Windows サービスを使用することで、私たちは役に立ちますか? または、これに最適なアプローチは何ですか。

よろしくお願いします

4

2 に答える 2

2

多くのパラメータに依存するため、これに対する簡単な答えはありません。「Hyp」の言うことに同意します。あなたが言ったように、いくつかのC#ソリューションは大いに役立ちます-したがって、技術的に、このWindowsサービス/ MSMQのものを実現したい場合は、こちらをご覧ください-

http://stackoverflow.com/questions/1521841/receiving-msmq-messages-with-windows-service
http://stackoverflow.com/questions/3956467/how-to-create-a-c-sharp-listener-service-for-msmq-as-a-windows-service

お役に立てれば。

于 2012-04-27T13:56:07.523 に答える
2

予想される発送量次第だと思います。毎秒 2000 のディスパッチを行う場合は、分離するのが良い考えだと思います。そのため、1 つのサービスが他のサービスに影響を与えず、それぞれに個別の環境 (サーバー) を用意できる可能性があります。予想される量が毎分 10 のようなものである場合、なぜ複雑にする必要があるのか​​ わかりません。いくつかのスレッド化と適切なビジネス層がうまく機能します。

于 2012-04-27T13:37:37.677 に答える