我有一臺即將開始接收文件的服務器。這些文件將被放置在一個文件夾中。我必須一次讀取文件並將數據保存到我的數據庫。我是否可以使用FileSystemWatcher來監視文件夾,然後在觀察者找到新文件時處理這些文件?或者我還應該使用MSMQ,以便在觀察者找到新文件後將這些文件放在隊列中?使用MSMQ有點矯枉過正? MSMQ是一件好事,但只要觀察者一次只處理一個文件,那麼我不太確定它是否真的有必要使用MSMQ。 FileSystemWatcher是否足以確保一次只處理一個文件?如果文件的進程失敗,該文件將仍然在文件夾中,因此不會丟失。 所以基本上我有這兩種模式之間進行選擇:FileSystemWatcher vs. MSMQ。可以選擇什麼?
傳入文件 - >文件被放置在文件夾 - >觀察者看到的文件 - >代碼背後的守望者讀取文件並將其保存到數據庫 - >看守返回到文件夾等待新文件。
或
傳入文件 - >文件被放置在文件夾 - >觀察者看到該文件 - >觀察者將消息(包含文件路徑)上的隊列中,並返回到觀看文件夾 - >甲QueueWatcher會看到消息,從路徑中讀取文件並將數據保存到數據庫 - > QueueWatcher重新運行以偵聽隊列中的新消息。
除非你需要處理斷開連接的系統我會保持簡單 – StaWho 2012-03-15 09:06:10
'Msmq是一件好事情'在這種情況下,你真正需要的是什麼? – shambulator 2012-03-15 09:09:01
這就是我的問題:)我開始認爲我需要msmq,因爲我被告知我們的服務器需要處理大量包含文件。現在我知道這些文件將被放置在我們的服務器上的一個文件夾中發送給我們。然後我轉向filesystemwatcher,但在作出決定之前,我只是想確保它有足夠的解決方案:) – Christian 2012-03-15 09:15:28