2013-02-01 5 views
0

우리는 Windows AppFabric을 사용하여 분산 캐시로 이동하는 방법을 조사하고 있습니다. ASP.NET 4.0 응용 프로그램에는 현재 MemoryCache를 사용하는 캐시 구현이 있습니다.AppFabric 및 CachingPolicy/ChangeMonitors

하나 개의 주요 기능은 항목이 캐시에 추가하는 경우, CacheItemPolicy가 ChangeMonitor 포함 된 포함되어 있다는 것입니다 : 변화 모니터 내부에서 주기적으로 전달 된 대리자를 트리거하기 위해 타이머를 사용

CacheItemPolicy policy = new CacheItemPolicy(); 
policy.Priority = CacheItemPriority.Default; 
policy.ChangeMonitors.Add(new LastPublishDateChangeMonitor(key, item, GetLastPublishDateCallBack)); 

을 -하는 일반적으로 비교를 위해 DB에서 값을 가져 오는 방법입니다.

Cache.Add(key, item, policy); 

AppFabric의 DataCache 클래스에서 초기 모습 캐시에 항목을 추가 할 때 시간 범위가 포함될 수 있습니다 동안 표시하는 것 : 항목이 캐시에 추가 될 때

정책과 그 변화 모니터는 포함되어 있습니다 , CacheItemPolicy 자체는 될 수 없습니다.

AppFabric에서 동일한 ChangeMonitor 유형 기능을 구현하는 또 다른 방법이 있습니까? 아마도 알림?

건배

+1

AppFabric에서 일한 지 1 년이 되었기 때문에 답변을 모집하지는 않겠지 만, 그 당시 답을 찾지 못했습니다. 어떤 이벤트가 변경되었을 때 캐시의 항목에 이벤트를 연결할 수 없습니다. 어쩌면 최신 버전이 이것을 지원합니다. – ryan1234

답변

0

두 개의 하드 컴퓨터 과학에 문제가 있습니다 : 캐시 무효, 명명 일 오프별로 한 오류가.
필 Karlton는

는 불행하게도 AppFabric은 캐시 항목을 무효화 모니터링 이런 종류의에 대한 지원, 유사 SqlCacheDependency 같은 것들에 대한 어떤 지원이 없습니다.

그러나 AppFabric 1.1은 리드 스루 및 후기 쓰기를 지원합니다. Write-behind는 애플리케이션이 기본 데이터베이스가 아닌 캐시 된 데이터를 먼저 업데이트하므로 캐시가 항상 최신 버전을 보유하므로 기본 데이터를 모니터링 할 필요가 없음을 의미합니다. 캐시는 기본 데이터베이스를 비동기 적으로 갱신합니다. read-through/write-behind를 구현하려면 DataCacheStoreProvider (MSDN)을 상속하는 객체를 만들고 데이터베이스의 구조와이를 업데이트하는 방법을 이해하는 읽기, 쓰기 및 삭제 메소드를 작성해야합니다.