You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Ignite Java Thin Client是否支持Expired过期条目事件本地监听

Apache Ignite Java瘦客户端Expired事件监听问题解答

Apache Ignite Java Thin Client(瘦客户端)的ContinuousQuery本地监听器支持监听EXPIRED过期条目事件,你遇到的事件不触发的问题,基本是由配置遗漏导致的,核心需要检查两处配置:

  • 服务端缓存配置必须开启过期事件投递开关
    默认情况下Ignite服务端缓存不会主动投递EXPIRED类型事件,需要在服务端初始化缓存的CacheConfiguration中显式指定要投递的事件类型,同时配置好对应的过期策略:
CacheConfiguration<Integer, String> cacheCfg = new CacheConfiguration<>("test_cache");
// 显式添加EXPIRED到事件类型列表,按需添加其他需要监听的事件
cacheCfg.setEventTypes(EventType.CREATED, EventType.EXPIRED);
// 配置缓存条目过期策略
cacheCfg.setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(Duration.seconds(30)));

注意这部分配置必须在服务端生效,仅在瘦客户端侧配置无效。

  • 远程过滤器要包含EXPIRED事件类型判断
    你当前的过滤器仅判断了EventType.CREATED,自然无法匹配到过期事件,需要调整过滤器逻辑,把EXPIRED事件加入判断条件:
query.setRemoteFilterFactory((Factory<CacheEntryEventFilter<Integer, String>>) () -> e -> 
    // 按需保留需要监听的事件类型,这里同时保留创建和过期事件
    e.getEventType().equals(EventType.CREATED) || e.getEventType().equals(EventType.EXPIRED)
);

Ignite的过期事件由服务端后台巡检线程触发,不是条目到期立刻触发,默认巡检间隔是几秒,所以事件通知会有短时间延迟,属于正常现象。

内容的提问来源于stack exchange,提问作者Vichukano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 21:09:02