我有一个系统,它位于Web服务器上,可以动态生成文件以响应HTTP请求。该系统使用asp.net mvc 4构建。所有代码都在控制器中。生成文件后,它们不会经常更改,因此我想实现缓存。我该如何实施以下内容? 用户1请求文档1 --- Web服务器处理正在进行...同时用户2请求文档1(相同文档)..我不想再次开始生成文档1.我希望此请求等到完成user1请求,以便可以从缓存提供用户2请求。这可能只是基本问题......我想在实现缓存之前理解解决方案。 请帮助一些样品..
答案 0 :(得分:0)
一个相对简单的解决方案是缓存Lazy<MyType>
实例,其中MyType
是代表您的文档的类型。
对于您描述的方案,您应该使用Lazy<MyType>
构建LazyThreadSafetyMode.ExecutionAndPublication
实例。这将确保文档仅生成一次。