【问题标题】:apache ignite java thin client expired entry listenerapache ignite java瘦客户端过期条目监听器
【发布时间】:2021-11-17 06:23:40
【问题描述】:

Apache Ignite 支持对 createputdelete 等入口事件的 ContinuousQuery 和本地侦听器。但是当我尝试监听过期的条目事件时它不起作用。 有重现java thin client example的代码示例。

如果将事件类型更改为 CREATED,它会按预期工作:

query.setRemoteFilterFactory((Factory<CacheEntryEventFilter<Integer, String>>) () -> e -> e.getEventType().equals(EventType.CREATED));

ignite java瘦客户端是否支持Expired入口事件类型的本地监听器?

【问题讨论】:

    标签: java ignite


    【解决方案1】:

    您需要明确配置监听EXPIRED 事件

    query.setIncludeExpired(true)
    

    根据JavaDoc

    设置标志值,定义是否通知 EventType.EXPIRED 事件。如果为真,那么远程监听器将收到关于 缓存中的条目已过期。否则,只有 EventType.CREATED, EventType.UPDATED 和 EventType.REMOVED 事件将在 远程监听器。此标志默认为 false,因此 EventType.EXPIRED 事件被禁用。

    【讨论】:

    • 谢谢,我在我的代码示例中尝试了这个,但它仍然不起作用。
    • 它不起作用是什么意思?我刚刚将这一行添加到您的代码中,一切都按预期工作。
    • 你能用 setIncludeExpired(true) 更新 GitHub 源代码吗?
    • 更新源:link 更新后仅出现创建事件:-----------CACHE POPULATED--------------- EVENT: CREATED 2 two EVENT: CREATED 3 three EVENT: CREATED 1 one [13:06:14] Ignite node stopped OK [uptime=00:00:20.812]` -----------缓存填充------------ --- 事件:创建 2 两个事件:创建 3 个三个事件:创建 1 个 [13:06:14] Ignite 节点停止正常 [uptime=00:00:20.812]
    • 谢谢,现在我明白了。这是因为您在主循环退出 try-block 时隐式关闭了客户端。如果客户端被销毁,则没有人可以通知事件。只需删除 try 块,你就会得到事件。
    猜你喜欢
    • 2020-06-21
    • 2019-07-20
    • 2020-02-14
    • 2019-11-09
    • 2021-09-22
    • 2021-10-04
    • 2021-05-23
    • 1970-01-01
    • 2020-12-20
    相关资源
    最近更新 更多