我有一个 MVC 3 c# 网站正在运行,它从 web 服务中提取记录。随着它从网络服务获得的数据集变得越来越大,我正在寻找一种方法,在没有当前缓存的情况下,第一个访问该站点的用户不会触发创建它的缓存,而是按每日计划(如 cron 作业、计划任务或其他东西)。
我该怎么做?我需要像Quartz.net这样的触发器库吗?(我宁愿使用更简单的解决方案)
我现在控制器中的内容是:
private List<DataSummary> GetSummaries()
{
//get summaries from cache if available
List<DataSummary> summaries = (List<DataSummary>)HttpContext.Cache["SummariesCache"];
if (summaries == null)
{
//cache empty, retrieve values
summaries = _webservice.GetSummaries();
//cache it
HttpContext.Cache.Add("SummariesCache", summaries, null, DateTime.Now.AddHours(12), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
}
return summaries;
}
编辑
使用CacheItemRemovedCallback
导致超时错误