所以我有一个在午夜运行的进程,它为flash对象设置一个起点和终点.这只需要每天运行一次,所以我显然是在缓存结果集.
但是,我遇到的问题是,如果数据仍然在midnite之后缓存,则它不会提取最正确的数据,直到缓存过期.
我基本上需要缓存在晚上11:59:59到期,以便在凌晨12:00获得正确的数据.
我猜测桌面上的SQL缓存依赖性我将从中提取数据是理想的,但我以前从未设置过.
有没有办法告诉缓存在正确的midnite删除特定的项目?
多谢你们!
– 绝对期满—
我想我明白了:
DateTime expireWeights = new DateTime(DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day,23,59,999); Cache.Insert("CacheItemName",itemToCache,null,expireWeights,System.Web.Caching.Cache.NoSlidingExpiration);
解决方法
您可以在Cache对象上设置absoluteExpiration时间,该时间是DateTime.
您还可以将absoluteExpiration与SqlCacheDependency结合使用.
关于缓存过期时不提取新数据的问题:您可以连接CacheItemRemovedCallback以接收其到期时间的通知,并在此时刷新缓存.