2010-11-04 42 views
1

我們正在創建一個Windows服務來從各個地方導入/導出數據。許多小服務vs一個更大的服務

我們的服務目前有像下面這樣的方法,每個方法都在他們自己的定時器上在自己的線程中運行。

ImportFromFoo 
ImportFromFoo2 
ExportToFoo 
ExportToFoo2 

從長遠來看,也將是10+不同的進口/出口,都在不同的定時器自己的線程中運行。它們都過於具體,不適合通用化,因爲數據以各種不同的方式發送和檢索,並且對每個導入/導出的數據執行不同的操作。我試圖解決的是,如果我們更好地分解服務,那麼每個進口/出口都在其服務中。

據我所看到的,好處是:

  1. 編程/調試會更簡單,因爲我們不擔心線程,可以集中精力編碼/測試每個模塊在其自己的環境。
  2. 一次導入/導出失敗不會導致其他導入失敗。

缺點是真的只是會有更多的項目/服務來維護。

我只是想知道其他人的意見是什麼,如果有很多小服務而不是一個更大的服務被視爲不好的做法。

編輯

的所有服務都將我們的應用程序服務器上運行,所以它只是我們誰有權維護它們,而不是用戶。

回答

2

我強烈支持創建多個服務。唯一的理由不這樣做是如果有用戶的系統上顯著的性能問題從開始10+的服務,而不是1

獨立的服務將允許您:

  • 詢問哪些服務,他們的用戶希望安裝,並希望在安裝過程中啓動時自動運行。
  • 允許用戶停止任何他們不需要手動或通過管理工具(如果有的話)的進程。
  • 更簡單的部署/升級路徑,您可以安裝新的服務而不會影響已經運行的服務。

我沒有看到多個項目是一個問題,任何好的想法都應該允許您將它們作爲一個管理和構建。