我可以使用@ClientCacheEntryExpired从Infinispan服务器侦听器检索过期的缓存条目吗?

问题描述

我正在修改嵌入式Infinispan应用程序以使用Infinispan服务器和HotRod客户端。嵌入式实现依赖于在侦听器中检测缓存过期事件。使用“ pre”事件,我可以读取过期的条目并更新外部数据。

功能使我不必编写自己的收割机,但据我所知,HotRod客户端实现没有提供相同的功能。我可以使用@ClientCacheEntryExpired来检测到期时间,但是很明显,在从缓存中删除条目并且只有侦听器可用的数据是键之后,事件才会触发。

是否有一种(简单的)方法来复制嵌入式行为?还是我必须实施自己的到期收割机?

解决方法

您可以自定义事件(请参见Documentation)以包括已删除的值,但是该事件将始终在删除后触发。

题外话; Infinispan服务器可以与JDBC存储进行通信(Documentation),并且您可以将逐出配置为具有写后持久性,以将数据存储在外部(请参见EvictionWrite-Behing文档)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...