我們有10個非規範化表,其中大部分數據包含大量數據(11,000,000個)。客戶希望用戶一次能夠下載最多100K條記錄。我想知道的是設計一個後臺進程來處理這個問題。我正在考慮爲每個表設置一個隊列,並有多個線程處理這些請求。我確定不是設計多線程組件的專家。你們認爲我在這裏的正確軌道?任何有關實施的建議?多線程組件設計問題
謝謝!
我們有10個非規範化表,其中大部分數據包含大量數據(11,000,000個)。客戶希望用戶一次能夠下載最多100K條記錄。我想知道的是設計一個後臺進程來處理這個問題。我正在考慮爲每個表設置一個隊列,並有多個線程處理這些請求。我確定不是設計多線程組件的專家。你們認爲我在這裏的正確軌道?任何有關實施的建議?多線程組件設計問題
謝謝!
設計方案
1 - 由於這是一個Asp.Net廣告應用程式,有多少併發用戶將下載的數據?
2-您是否想在應用程序中提供下載數據工具,您是否想過進行重新循環?
3-如果用戶會話過期但下載仍在進行中怎麼辦?
4-您可能正在轉向流媒體服務器。
我認爲,您應該首先考慮這些情況,而不是決定實際需要哪種類型的應用程序。
在我的心中我想,你應該考慮創建一個基於Windows的解決方案將被下載到客戶端計算機,並利用客戶資源(線程等)連接到服務器和服務器必須支持流媒體。
用戶會進行自定義查詢還是隻是下載表格的「塊」?
如果後者爲什麼不爲每個塊提前生成CSV?如果每個塊有100,000條記錄,並且該表總共只有11,000,000條記錄,則只需要110個塊。
我認爲這是做到這一點的一種方式。
您可以調用其他頁面並將該過程放入下一頁。
以下文章可能有用。
http://codebetter.com/blogs/peter.van.ooijen/archive/2006/06/20/146582.aspx
當你說「下載最多的一次記錄100K」,是出口(或需要的所有數據類似的東西)?或者在屏幕上查看(您可以在哪裏分頁並給出所有數據在那裏的錯覺)? – w69rdy 2010-12-06 15:24:42
隊列將做什麼? – 2010-12-06 15:24:55
正確,導出爲excel(或csv)。用戶將有一個Web界面,所以我需要將請求放入某種類型的隊列中。隊列只會存儲報告類型和搜索參數。 – Marco 2010-12-06 15:26:29