2014-03-30 89 views
0

我有一个系统位于Web服务器上并根据HTTP请求即时生成文件。系统是使用asp.net mvc 4构建的。所有的代码都在控制器中。生成文件后,它们不会经常更改,所以我想实现缓存。我如何实现以下? 用户1请求文档1 --- web服务器处理正在进行...与此同时用户2请求文档1(同一文档)..我不想开始生成文档1第二次..我希望这个请求等待直到user1请求完成,以便用户2的请求可以从缓存中提供。这可能只是基本问题......我想在实施缓存之前了解解决方案。 请帮助一些示例。ASP.NET MVC 4通读缓存

回答

0

一个相对简单的解决方案是缓存Lazy<MyType>实例,其中MyType是表示您的文档的类型。

对于您描述的场景,您应该使用LazyThreadSafetyMode.ExecutionAndPublication构造Lazy<MyType>实例。这将确保文档只生成一次。