1

我正在寻找一种使用 ignite 注册单个缓存的缓存事件的方法。

可以使用此代码注册所有点燃环境的放置事件;

        IgniteBiPredicate<UUID, CacheEvent> lsnr = new IgniteBiPredicate<UUID, CacheEvent>() {
                @Override public boolean apply(UUID uuid, CacheEvent evt) {
                    System.out.println("Received event [evt=" + evt.name() + ", key=" + evt.key() +
                        ", oldVal=" + evt.oldValue() + ", newVal=" + evt.newValue());

                    return true; // Continue listening.
                }
            };
    ignite.events().localListen(lsnr, EventType.EVT_CACHE_OBJECT_PUT);

但由于性能原因,我只想为特定的地图(缓存)注册缓存事件。否则,我将不得不检查每个事件的缓存名称,这可能会导致系统负载大量事务。

感谢您的任何帮助和指导。

4

1 回答 1

1

如果您想收听数据更新,连续查询是更好的选择:https ://apacheignite.readme.io/docs/continuous-queries

此功能适用于每个缓存级别,支持正确的事件排序并保证在拓扑更改的情况下交付。

于 2016-02-28T18:51:30.540 回答