我試圖實現一個使用Coherence瞬態緩存的業務功能。一致性EntryProcessor查詢
我打算依賴的功能之一是在將項目放入緩存時提供(可配置的)生存時間時自動逐出緩存條目。接口NamedCache提供了一個API來實現這個(http://download.oracle.com/otn_hosted_doc/coherence/330/com/tangosol/net/NamedCache.html#put(java.lang.Object,java.lang.Object,long))。
但是,我還計劃使用Entry-Processors來確保跨集羣的有效併發性。我現在被困在一個點上,在處理器的範圍內,我應該使用InvocableMap.Entry來使用緩存中的鍵來獲取/設置值。不幸的是,沒有setValue方法可以讓我指定生存時間值。
我在這裏假設直接與EntryProcessor的process方法內的NamedCache引用接口不是一個好主意,並且會危及EntryProcessor提供的併發保證。
您可以分享一下您的想法:在確保某個時間段(這是動態決定的)之後驅逐一個條目的最佳方式,同時確保跨羣集節點的最佳併發性?
我並未完全掛斷使用自動驅逐功能。但是,如果我放棄這一點,我可能不得不依賴基於計時器的程序刪除條目,該條目在集羣中可靠地工作。再一次,我沒有想到這一點。理想情況下,我希望Coherence來解決這個問題。
非常感謝提前。
最好的問候, - 阿迪亞
謝謝!我最終做到了這一點。 – 2014-11-26 15:04:07