2012-11-01 80 views
1

是否可以在AppFabric或任何其他分佈式緩存系統中使用類似於使用ASP.Net的HttpRuntime緩存可以使用CacheDependency類的「緩存相關性」?分佈式緩存(AppFabric)和緩存依賴關係

這個的範圍是說一個用戶控件附加到緩存的'關鍵'。如果緩存項更改,則usercontrol將失效並重新加載自身。這可能嗎?

+0

可能重複http://stackoverflow.com/questions/9298233/sqlcachedependency-and-appfabric-server – Cybermaxs

+0

@Cyber​​maxs雖然它看起來像一個重複的,選擇的答案實際上有點誤導。從我發佈這個問題的時候開始,我就該主題進行了很多研究,並且通過AppFabric Cache通知回調提供了一個解決方案,這是最近對這項技術的補充。我會在這裏發佈這個答案,以供其他用戶的未來參考。 –

回答

1

經過一些研究和測試--AppFabric確實支持類似於上述的東西,稱爲「緩存通知回調」。基本上,您可以附加到緩存的項目/區域,系統將在緩存更改時引發事件。

但是,這樣的通知不是即時的,並且使用「輪詢」機制。這是我們必須記住的事情,因爲起初我以爲系統不能正常工作。默認輪詢時間爲300秒(5分鐘),因此可能需要一些「時間」才能獲得通知。這可以更改爲任何其他時間間隔,特別是用於測試。

我試過這個,可以確認它的工作。關於如何實現的細節可以在MSDN上的鏈接中找到:http://msdn.microsoft.com/en-us/library/ee808091(v=azure.10).aspx

+1

但是,appfabric緩存通知回調與使用CacheDependency類的Asp.net Http Runtime緩存不同。使用cachedependency,你可以列出你的緩存項目的依賴關係,當這些依賴關係中的任何一個依賴項過期時,你的緩存項目也會過期,但appfabric回調通知不是這種情況。在appfabric中,您只會收到針對您的緩存項目的通知,並且不存在對列表依賴關係的現成支持 –