2010-03-30 3 views
1

캐시가 만료 된 경우 캐시 된 개체를 업데이트 된 정보로 다시 캐싱 할 수 있습니까? 캐시를 요청하는 다음 사용자가 캐시 설정 데이터를 처리해야하는 것을 막으려 고합니다. 캐시를 설정하는 방법은 배경 메서드/이벤트입니다. 개체를 연결하여 만료 될 때 메서드를 호출 할 수 있습니다. 그것은 자기와 자기 - 캐시.ASP.net 자체 리 캐싱 개체 만들기?

답변

2

당신은 캐시

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 
    } 
+0

지금이 구현에서 직면 한 문제는 해당 HttpContext.Current.Cache를 사용할 수 없다는 것입니다. – BlackTea

+0

'HttpContext.Current! = null? HttpContext.Current.Cache : HttpRuntime.Cache;' – vittore

0

실례에서 콜백을 사용할 수있는, 어쩌면 내가 모르는 뭔가가있어. 그러나 당신 같은 소리는 캐시 된 데이터를 계속 업데이트하는 것입니다. IMO,이 경우 만료 대신 CacheDependency을 사용하는 것이 좋습니다. 물론 다음 요청시 다시 캐싱해야합니다.

+0

아이디어는 다음 요청이 들어오는 모든 xmin을 다시 캐싱하고 수동으로 리 캐싱을 시작해야한다는 것입니다. – BlackTea