我正在使用cache.insert()
方法向缓存添加一些数据,它使用绝对过期并在4小时内过期一次。
现在我有一个新要求在特定时间到期缓存:早上7点,上午11点,下午3点,晚上7点。
有办法吗?
当前代码:
ctx.Cache.Insert("stmodel", stModel, null,
DateTime.Now.AddHours(4), System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.Default, OnCachedItemRemoved);
提前致谢。
答案 0 :(得分:2)
ctx.Cache.Insert("stmodel", stModel, null,
MyClass.getSpecificDateTime(), System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.Default, OnCachedItemRemoved);
public static DateTime getSpecificDateTime()
{
TimeSpan currentTime = DateTime.Now.TimeOfDay;
DateTime newTime = DateTime.Now;
if (currentTime.Hours < 7){
newTime = newTime.Date + new TimeSpan(7, 0, 0);
}else if (currentTime.Hours < 11){
newTime = newTime.Date + new TimeSpan(11, 0, 0);
}else if (currentTime.Hours < 15) {
newTime = newTime.Date + new TimeSpan(15, 0, 0);
}else if (currentTime.Hours < 19){
newTime = newTime.Date + new TimeSpan(19, 0, 0);
}else {
newTime = DateTime.Now.AddDays(1);
newTime = newTime.Date + new TimeSpan(7, 0, 0);
}
return newTime;
}