Pergunta

Como posso fazer um objeto em cache recolocá-lo com informações atualizadas quando o cache expirou? Estou tentando impedir que o próximo usuário que solicite que o cache tenha que lidar com a obtenção dos dados do cache e, em seguida isso se auto-acrescenta.

Foi útil?

Solução

Você pode usar retorno de chamada do cache

System.Web.Caching.CacheItemRemovedCallback callback = 
    new System.Web.Caching.CacheItemRemovedCallback (OnRemove);
Cache.Insert("key",myFile,null, 
   System.Web.Caching.Cache.NoAbsoluteExpiration, 
   TimeSpan.Zero, 
   System.Web.Caching.CacheItemPriority.Default, callback);
 . . .
public static void OnRemove(string key, 
   object cacheItem, 
   System.Web.Caching.CacheItemRemovedReason reason)
   {
      // Logic
   }

Outras dicas

Perdoe -me, talvez eu esteja perdendo alguma coisa. Mas parece que você está procurando atualizar os dados em cache. IMO, é melhor usar CacheDependency em vez de expiração neste caso. Obviamente, você deve recolocá-lo novamente na próxima solicitação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top