增加缓存中项目的过期时间



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

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无法删除此项目并再次添加。

当您将项目添加到缓存时,您可以提供一个回调,当运行时将要从缓存中删除该项目时将调用该回调,而不是当前的回调,当它已经被删除时将被调用。

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

请参阅此插入重载和有关CacheItemUpdateCallback委托的文档

尽管您已经在处理删除的事件-这个"更新"的事件基本上是一样的-但它只是让您能够在需要时取消过期。

最新更新