我正在构建一个应用程序来通过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