我正在構建一個應用程序來通過REST API提供大量數據,我正在尋找一些有關如何構建它的輸入。我正在使用.NET(C#4.0),ASP.NET MVC和Sql Server 2008.通過HTTP API提供大量數據的體系結構
現在我在關係數據庫中有大約400k行,其中+ - 其中5%通過內部應用程序更新直接進入數據庫。我需要通過REST API來提供這些數據,以返回XML的自定義格式。但是,在輸出數據之前需要處理數據。好的是我可以在需要之前預先處理它。
我寫了一個小的POC,它獲取數據,處理它並將其緩存到本地XML文件中。由於處理此過程需要大約一個小時才能處理所有400k行。緩存完成後,我只是在每個請求中返回物理文件。
現在我需要能夠更新數據,因爲它在源代碼中得到更新並更新我的緩存,所以每次更新單行時都不需要生成所有內容。
我正在考慮使用AppFabric來保持內存緩存,並使用物理文件只是爲了確保在內存緩存熄滅的情況下,我不需要從頭開始。只要一行在源代碼中更新,我就會更新緩存並寫入物理文件以確保其最新。
因此,我的主要來源是AppFabric緩存,然後是物理緩存文件,並作爲最後的手段從數據庫重新生成文件,大約需要一個小時,並且無論誰調用該文件都無法使用該文件。
我對此並不滿意,但這是我得到的。有什麼建議麼?
非常感謝!
很清楚的解釋,但它留下了一個問題在我心中:是否從〜400k行生成的輸出文件的一些組合關閉所有這些無效,無論是一行更改,還是這是一個可能發生的行按行? 如果這是以後的情況,可能的答案就是自身。 – coffeetocode 2011-04-08 22:55:16
不,該過程產生的輸出文件是輸入行(產品,這與電子商務有關)的列表,其中一些數據被修改(價格)。所以如果一行更新,我只需要更新這一行。並非全部。 – tucaz 2011-04-10 18:32:40