2016-06-28 476 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