2010-11-23 59 views
1

我需要構建一個Windows服務器端應用程序,負責接收大文件並處理它們(過程操作大約需要3個小時)。創建一個模擬網絡服務器上的FIFO的.NET應用程序

有人能告訴我什麼是這樣的情況下最好的辦法(Windows服務可能),並在這種情況下,如何告訴服務,一個新的文件可用於處理?

PS:過程動作不能並行處理

編輯:尋找一些答案後,我會嘗試重組問題。上傳部分已經在工作。我的問題是我必須在上傳後在文件上運行一個算法。該算法需要花費3個小時才能處理單個文件。我想確保要處理的文件存儲在某處(在內存中,在一個數據庫中,它在哪裏確實無關緊要),並且只在前一個文件完成時纔會分析下一個文件。

回答

0

我結束了一個控制檯應用程序,它閒置時(不處理任何文件)決定哪個文件應該接下來處理並啓動它。

該應用程序被配置爲在機器啓動時啓動。

0

使用一些簡單的數據收集來收集每個進程的線程。

例如,您可以像List一樣使用,並定義當前正在處理的線索的索引變量。

+0

無論我選擇哪一個選項,我都必須使用數據收集來了解哪些文件需要處理。我的問題在於決定是否構建Windows服務,控制檯應用程序等。 – dcarneiro 2010-11-23 17:03:39

0

我建議建立一個FTP服務器,也許FileSystemWatcher拿起文件,因爲它們被上傳和處理它們

http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx

+0

目前我有一個ASP文件,可以將文件上傳到服務器,並在上傳結束時處理它們。問題是如果n個用戶決定同時上傳n個文件。這個過程是處理器繁重的,所以它應該按順序進行(如FIFO)。 – dcarneiro 2010-11-23 17:07:09

+1

@Daniel。你想要做什麼'FIFO'?網絡服務器,圖像處理?我不認爲你可能已經考慮過了。 上傳文件不應該在處理器上沉重,你說的處理器在處理器上是沉重的嗎? – TimC 2010-11-23 17:19:24

0

您可能能夠使用BITS上傳的文件。該API有一個C#封裝器here

請注意,對於上傳,有一個server-side dependency on IIS

BITS是使用(在下載模式下)從update.microsoft.com自動將所需安全性和其他更新程序放入您的計算機的技術。

相關問題