增加Cache中项目的到期时间

时间:2012-04-03 10:27:38

标签: asp.net asp.net-mvc caching

我有代码将项目添加到缓存中:

public static void AddTask(string name, string value,int seconds)
{
   _onCacheRemove = new CacheItemRemovedCallback(CacheItemRemoved);
   HttpRuntime.Cache.Insert(name, value, null,
                        DateTime.Now.AddSeconds(seconds), Cache.NoSlidingExpiration,
                        CacheItemPriority.NotRemovable, _onCacheRemove);
}

例如,seconds等于120. 20秒后,我想再次设置到期时间120秒。我怎么能这样做?

PS。 A无法删除此项目并再次添加。

1 个答案:

答案 0 :(得分:1)

当您将项目添加到缓存时 - 您可以提供在运行时要从缓存中删除项目时要调用的回调 - 而不是当它已被删除时被调用的当前项目。“ / p>

在该回调中,您可以取消删除过程并延长条目的生命周期。

请参阅this overload of insert以及有关CacheItemUpdateCallback delegate

的文档

虽然您已经处理了已删除的事件 - 这个'更新'事件基本上是相同的 - 它只是让您能够在需要时取消过期。