2012-07-29 43 views
5

我正在爲一些懶惰的程序員實現一個核心服務「Facade」,它不想改變他們的編碼風格(包括我在內),並且想要實現對象緩存,這顯然導致了「多長時間我應該緩存多少「。Tridion核心服務可以通知數據更改嗎?

理想的答案是永遠緩存,除非數據更改。

有沒有一種方法(通過一些WCF事件)實現一個「偵聽器」的數據變化,可以用來從他們的緩存中刪除項目?

順便說一句,我現在使用.NET的本地ObjectCache(MemoryCache)與1分鐘的滑動緩存策略。

感謝,

ň

回答

7

有內置於任何WCF或外表套上據我所知,沒有這樣的制度。

你當然可以推出自己的,在這裏你:

  1. 傾聽與事件處理程序更改的相關數據TCM服務器上
  2. 有那些事件處理程序的事件轉發到中央通知服務器
  3. 讓你的WCF客戶,當他們開始了
  4. 有通知服務器發送隨後對通知所連接的客戶端通知服務器註冊

這實質上與Tridion的Broker對象緩存在內容傳送層上的工作方式非常相似。

如果你有興趣實施這樣的方法,我建議看看Signalr project,這需要很多麻煩。


編輯:原來WCF有一個類似於你問名爲回調。見this questionthis blog post

+0

謝謝弗蘭克。在這一點上,我有點不情願給系統添加「多一個」事件,我會先等待它穩定...... 1分鐘的緩存至少會覆蓋懶惰的編程(我甚至可以減少它)更進一步,因爲我看到的性能命中是由代碼在不同的方法中重複加載相同的對象集合而導致的) – 2012-07-29 14:14:36

相關問題