我正在MVC网站上展示产品。需要跟踪用户查看的每个产品并将日志存储在数据库中。
因为每次页面加载时我都不想命中数据库,所以我试图将日志存储在应用程序级缓存中。问题是:我如何将缓存中的数据转储到数据库中?是否有任何框架为我做过这个,或者是针对这个问题的最佳实践?
答案 0 :(得分:1)
ASP.NET不是为托管后台任务/作业而设计的,但可以这样做,尽管它不是100%可靠。
创建一个包含计时器的工作类,该计时器触发每个X间隔并清空应用程序缓存并将数据保存到数据库。在global.asax中,为Application_Start
创建一个处理程序,并从那里调用worker类的init方法。
还要在您通过global.asax中的Application_Stop
事件处理程序调用的worker类中公开flush方法,以确保在应用程序关闭之前清除所有未完成的数据。