Cluster computing hazelcast映射加载程序侦听器

Cluster computing hazelcast映射加载程序侦听器,cluster-computing,hazelcast,hazelcast-imap,Cluster Computing,Hazelcast,Hazelcast Imap,我有一个成员,它有一个MapStore/Loader,可以读取/写入数据库,还有一个客户端,可以添加EntryAddedListener侦听器 如果成员被弹回,我会看到在MapLoader从数据库重新加载数据时,会触发条目添加侦听器 然而,这向客户机表明已经添加了新条目,而事实上,由于节点正在引导,它们只是被“添加”了 基本上,我不希望这些监听器因为MapLoader引导地图而被激发——它们应该只在之后被激发 如何阻止这些MapLoader事件触发EntryAdded侦听器?没有办法。 使用Ma

我有一个成员,它有一个MapStore/Loader,可以读取/写入数据库,还有一个客户端,可以添加EntryAddedListener侦听器

如果成员被弹回,我会看到在MapLoader从数据库重新加载数据时,会触发条目添加侦听器

然而,这向客户机表明已经添加了新条目,而事实上,由于节点正在引导,它们只是被“添加”了

基本上,我不希望这些监听器因为MapLoader引导地图而被激发——它们应该只在之后被激发

如何阻止这些MapLoader事件触发EntryAdded侦听器?

没有办法。 使用MapLoader加载条目基本上就是向地图添加条目

您可以做的是在映射加载后添加这些侦听器。 如果您的加载模式设置为“急切”,则很容易确定加载何时完成


为了等待加载完成,可以调用map.size()操作。当它完成时,映射被完全填充。

可以区分从Hazelcast开始的添加和加载事件。此功能已作为问题的一部分引入


此外,您可能需要查看Java文档以了解更多详细信息。

是否有任何代码示例可以帮助其他用户理解此问题?谢谢。是,它已被设置为来自成员的渴望。是否可以确定映射是否已从客户端本身完全加载?为了等待加载完成,可以调用map.size()操作。当它完成时,映射将被完全填充。因此,从客户端的角度来看,我必须在客户端断开事件回调上删除侦听器,然后等待客户端重新连接,但另外调用size(),然后才重新添加侦听器?我要说的是,从客户端处理您的用例很困难。我不确定如果被反弹,成员是否会使用map loader加载条目。它们实际上应该从已经保存该数据的其他成员迁移。但当你启动应用程序时,监听器肯定会被解雇。据我所知,您的用例不希望它发生。如果您可以为此创建一个github问题,这样我们就可以跟踪它,并在将来实现它,那就太好了。最后,如果你能接受我的答案,那就太好了,因为它在目前的技术水平上是准确的。嗨,欢迎来到Stack Overflow。你并没有真正回答这个问题;你只是在抛出一堆指向外部文档的链接。