【发布时间】:2014-02-20 18:12:47
【问题描述】:
我正在使用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);
提前致谢。
【问题讨论】:
-
四舍五入的日期时间将如何帮助满足此要求?
-
你的问题不是“如何在四舍五入到 4 小时的时间内找到下一个时刻”吗? (同样简单的
if有4个条件可能比那篇帖子DateTime.Now.AddHours(4) < DateTime.Today.AddHours(7) ? DateTime.Today.AddHours(7) : ...中建议的四舍五入更易读) -
只需将 DateTime.Now.AddHours 替换为返回特定时间的方法即可。例如,您可以将其称为 GetNewExpiryTime。如果大于早上 7 点且小于 11 点,则在今天上午 11 点返回,以此类推。