我有一个使用ASP.NET WebAPI构建并在Azure上托管的网站。它与SQL服务器交谈,为了提高用户感知的页面加载性能,我在其控制器中添加了一个内存数据缓存,因为刷新逻辑很懒,所以第一个用户将会遇到很长的加载时间。
现在我想主动刷新缓存,我可以在控制器中安排一个线程/任务来定期刷新缓存(我已将网站设置为'总是在'因此应用程序池赢了'处置它)?我可以使用任何现成的库吗?感谢。
答案 0 :(得分:0)
不确定Azure,但对于内部部署,您可以使用Global.ascx文件的Application_Start方法来初始加载缓存。
您可以使用相同的global.asax文件来安排定时器定期调用方法,在此方法中,您可以编写逻辑以使缓存无效并重新加载。 了解如何使用计时器here:
您可以使用HttpRuntime.Cache存储缓存数据。
另外要确保在应用程序关闭时(计划/意外)不应处理您的对象并且不应运行后台线程
还阅读有关IRegisteredObject接口的内容,它将帮助您在应用程序关闭之前处理对象。
如果您需要有关如何实施该信息的更多信息,请告诉我们,您需要提供更多信息。