定期刷新ASP.NET WebAPI控制器中的内存数据缓存?

时间:2015-10-05 20:17:31

标签: asp.net caching asp.net-web-api controller

我有一个使用ASP.NET WebAPI构建并在Azure上托管的网站。它与SQL服务器交谈,为了提高用户感知的页面加载性能,我在其控制器中添加了一个内存数据缓存,因为刷新逻辑很懒,所以第一个用户将会遇到很长的加载时间。

现在我想主动刷新缓存,我可以在控制器中安排一个线程/任务来定期刷新缓存(我已将网站设置为'总是在'因此应用程序池赢了'处置它)?我可以使用任何现成的库吗?感谢。

1 个答案:

答案 0 :(得分:0)

不确定Azure,但对于内部部署,您可以使用Global.ascx文件的Application_Start方法来初始加载缓存。

您可以使用相同的global.asax文件来安排定时器定期调用方法,在此方法中,您可以编写逻辑以使缓存无效并重新加载。 了解如何使用计时器here

您可以使用HttpRuntime.Cache存储缓存数据。

另外要确保在应用程序关闭时(计划/意外)不应处理您的对象并且不应运行后台线程

还阅读有关IRegisteredObject接口的内容,它将帮助您在应用程序关闭之前处理对象。

如果您需要有关如何实施该信息的更多信息,请告诉我们,您需要提供更多信息。