2012-04-27 6 views
1

私はベストアプローチの提案:C#ベースのWindowsサービスの実装

OSでの実装の提案を要求しています:Windows Server 2008の プラットフォーム:ASP.NET、C#の DB:MS SQL 2005

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

  1. 我々は、頻繁な間隔(例えば10秒)で、MS SQLでDBテーブルのセットと、すべての重要なエントリを識別する監視する監視デーモンを実装しなければなりません。

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

3.So ACCT_USR_LIMIT_EXECEED : SomeNameなどのメールの発送やDBテーブル更新クエリの実行またはフォルダのサイズ測定しなければならないアクションに関連付けるか、ローカルHDD内のフォルダを削除するか、いくつかのファイルをクリーンアップしなければなら

分析される重要なエントリの量は今のところ中程度であるが、増加する範囲もある。我々はこれをアプローチ、と私は可能性がある参照するにはどうすればよい

  1. 我々は、二つの異なるサービスを書く1を監視し、その派遣1つの窓を監視するためのサービスや派遣アクションを書いたり、
  2. う分析をMSMQに、そして他のサービスはプッシュされた同じMSMQエントリを読み取るアクションをディスパッチします。

1つのWindowsサービスをお持ちでも役に立ちますか?またはこれに最適なアプローチは何ですか?

親切に私はそれがすべてディスパッチの予想される量に依存だと思う

+2

ちょっと考えました[C#サービスから逸脱] - Powershellをこのようなものに使用しないでください。バックグラウンドジョブの概念があり、Powershellはそのような管理操作を達成するための強力な自動化ツールです。例:http://www.sqlservercentral.com/blogs/cleveland-dba/2012/04/12/better-living-thru-powershell-update-statistics-in-parallel/ –

+0

ありがとうございます、私たちはそれだけでなく。いくつかのC#ソリューションは多くの助けになります:) – Futur

答えて

2

を示唆しています。毎秒2000回のディスパッチを行うつもりなら、分離が良いアイデアだと思うので、1つのサービスは他のサービスに影響を与えず、それぞれの環境(サーバー)を持つことができます。予想される金額が毎分10分のようなものなら、なぜそれを複雑にするべきか分かりません。いくつかのスレッディングと適切なビジネス層はうまくいくでしょう。

+0

それは少し高くなることは予測できません。設定全体がSaaSベースのポータルでユーザーの使用状況を追跡すると仮定します。私はそれのサイズについて確信が持てません。しかし、MSMQが最良のアプローチか他のIPCであると思いますか? – Futur

+0

あなたは見積もりをしていなくても、あなたは本当に厳しい場所にいますが、はいMSMQはあなたのケースで実行可能な解決策です。 – hyp

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 

・ホープ、このことができます。

+0

MSMQとWindowsサービスの実装を実装しています。 – Futur

+0

coolその後、あなたはこのことを無視するかもしれません –

+0

Seesharp - それは重要ではありません:)あなたの情報は常に助けになります。 – Futur

関連する問題