清除缓存在特定时间在ASP.NET 2.0
-
18-09-2019 - |
题
所以我有在午夜其设定用于闪光对象的开始和结束点运行的进程。这只需要每天运行一次,所以我显然缓存结果集。
不过,我运行到的是,如果数据midnite后仍缓存,它不是在最正确的数据拉动的问题,直到缓存过期。
基本上,我需要缓存下午11:59:59到期,所以在12:00 AM它得到正确的数据。
我在我从拉数据将是理想的表猜测SQL缓存依赖,但是我从来没有设置了。
有没有办法告诉缓存正好midnite删除特定项目?
谢谢你们!
- 绝对过期---
我想我明白了:
DateTime expireWeights = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59, 999);
Cache.Insert("CacheItemName", itemToCache, null, expireWeights, System.Web.Caching.Cache.NoSlidingExpiration);
解决方案
可以缓存对象,它是一个DateTime上设置absoluteExpiration时间。
您也可以用的SqlCacheDependency结合的absoluteExpiration。
关于在缓存过期时它不拉新数据的问题:你就可以将一个CacheItemRemovedCallback当时收到通知何时到期,并刷新缓存
其他提示
我不明白为什么你有绝对过期的问题吗?您可以指示确切的日期时间进行该产品将从高速缓存过期。因此,下面的代码行将插入“myObject的”成键“的myKey”下的高速缓存和在午夜第二天将过期(无论何时它enteres高速缓存的)。
Cache.Insert("MyKey", myObject, null, DateTime.Today.AddDays(1), TimeSpan.Zero);
如果你看看这里,下“基于时间的依赖”,它显示了如何设置的项目在特定时间到期。这就是你要找的是什么?
不隶属于 StackOverflow