2016-06-28 103 views
0

我正在嘗試使用Hazelcast開發特定功能(訂閱服務)。訂閱將根據謂詞來偵聽特定的地圖。這可以通過entryListener輕鬆實現。到現在爲止還挺好。Hazelcast EntryListener,如何避免競爭狀態?

但是,當我添加eventListener(並不斷收到持續更新)時,緩存不是空的。如果將eventListener添加到具有實體的緩存中,則不會了解緩存中的當前條目。

我可以調用map.values(),但是這不提供真正的解決方案,因爲添加eventListener和調用map.values(...)是而不是原子可能會丟失一個條目。

理想情況下,一系列事件將

  1. 添加事件監聽謂語
  2. 接收緩存中的匹配謂詞
  3. 然後接收更新的所有條目/刪除的事件發生/添加(匹配最初的謂詞)。

歡迎任何建議。

回答

0

雖然它是一個企業功能, continuous-query-cache似乎你想要的。請參閱pre-population部分。預填充有助於通過根據提供的謂詞獲取快照,從基礎imap中填充緩存。你也可以找到一些樣品here

+0

我想你可能就在這裏。我沒有企業許可證,我想知道是否可以通過入門處理器和過濾器來實現這一結果。 – Rich