2012-04-27 87 views
1

我在請求對實現的建議最佳方法建議:基於C#的Windows服務實現

操作系統:Windows Server 2008 平臺:ASP.NET,C# DB:MS SQL 2005

的情況是:

  1. 我們必須實現,這將在頻繁的間隔顯示器設置在MS SQL數據庫表的監控守護進程(比如10秒),並確定所有關鍵條目。

  2. 分析後的條目將與基於其關鍵性或類別的某些操作相關聯。所以假設一個關鍵條目將被表示爲ACCT_USR_LIMIT_EXECEED : SomeName

3.So ACCT_USR_LIMIT_EXECEED : SomeName應聯想到這應該是電子郵件發送或DB表更新查詢執行或文件夾的大小測量或刪除文件夾或本地硬盤驅動器等

清理一些文件的操作

現在要分析的關鍵條目數量應該是中等的,但它也有增加的餘地。

我們如何達到這一點,我看到的可能性是,

  1. 咱們寫監控一個Windows服務和調度行爲,或
  2. 寫兩種不同的服務,一個監控和調度其分析MSMQ和其他服務以分派讀取推送的相同MSMQ條目的動作。

將有一個單一的Windows服務將幫助我們?或什麼是最好的方法。

請建議

+2

只是一個想法[偏離C#服務] - 爲什麼不使用Powershell這樣的東西。有一個背景作業的概念,Powershell是一個強大的自動化工具來實現這樣的管理操作。例如:http://www.sqlservercentral.com/blogs/cleveland-dba/2012/04/12/better-living-thru-powershell-update-statistics-in-parallel/ – 2012-04-27 13:35:06

+0

謝謝你的建議,我們會看到也是如此。和一些C#解決方案將有很大的幫助:) – Futur 2012-04-27 13:41:08

回答

2

我認爲這一切都取決於預期的發貨量。如果你打算每秒鐘執行2000次調度,那麼我會認爲分離是一個好主意,所以一個服務不會影響另一個服務,你可能爲每個服務都有一個單獨的環境(服務器)。如果預期的數量是每分鐘10個,那麼我不明白爲什麼你應該使它變得複雜,一些線程和適當的業務層將會很好。

+0

它會很高,不能被預測。假設整個設置是針對基於SaaS的門戶來跟蹤用戶的使用情況。我無法確定它的大小。但是你認爲MSMQ是最好的方法還是其他IPC? – Futur 2012-04-27 13:43:29

+0

好吧,如果沒有估算,你確實處於困難的地位,但是對於你的情況,MSMQ是一個可行的解決方案。 – hyp 2012-04-27 13:52:54

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 2012-04-27 14:00:08

+0

很酷。那麼你可以忽略這個 – 2012-04-27 14:01:50

+0

Seesharp - 沒關係:) ..你的信息總是會有幫助。 – Futur 2012-04-27 20:02:19

相關問題