从JBoss Infinispan 讨论中发布的交叉
我正在尝试实现一些代码,只要在我的一个 Infinispan 缓存中创建条目时就会采取行动。我很快意识到传递给我的 @CacheEntryCreated 方法的 CacheEntryCreatedEvent 对象不包含新创建的条目,因此我开始寻找解决方案。
我发现了有关解决方案的各种讨论,即捕获在@CacheEntryCreated 事件之后传递的@CacheEntryModified 事件并在isPre()=false 时获取对象。但是,我认为我错过了一些东西,因为在所有讨论中都没有解决您有一个修改事件的情况,该修改事件代表对现有条目的合法修改而不是创建。
这是否意味着我的@Listener 对象必须在事件传递之间维护状态信息?我的@CacheEntryModified 必须整合事件对象,确定它是一个创建事件(即 getValue() == null && isPre() == true),然后在获取新创建的对象之前等待下一个@CacheEntryModified 事件?
这提出了一个明显的问题,即如果另一个@Listener 对象在第二个@CacheEntryModified(即isPre() == false)事件传递之前否决了修改,该怎么办?
其他人如何处理这种情况?