Ignite cache-仅在满足条件时更新缓存项的原子操作

Ignite cache-仅在满足条件时更新缓存项的原子操作,ignite,Ignite,我想知道是否有一种方法可以有条件地对缓存项进行原子更新,例如: cache.putCondtitionally(key, newEntity, (oldEntity, newEntity) -> oldEntity.timestamp().isBefore(newEntity.timestamp())) 我的具体用例是,我接收到对实体的更新,这些更新可能是无序的,我不想用“旧的”实体覆盖缓存中已经存在的实体。如果我错过了一些更新,我可以 我希望以原子模式(无锁、无事务)在缓存上管理此功能

我想知道是否有一种方法可以有条件地对缓存项进行原子更新,例如:

cache.putCondtitionally(key, newEntity, (oldEntity, newEntity) -> oldEntity.timestamp().isBefore(newEntity.timestamp()))
我的具体用例是,我接收到对实体的更新,这些更新可能是无序的,我不想用“旧的”实体覆盖缓存中已经存在的实体。如果我错过了一些更新,我可以

我希望以原子模式(无锁、无事务)在缓存上管理此功能


Thx.

如果您有旧对象的副本,可以使用
IgniteCache\replace(key,oldValue,newValue)


对于更复杂的内容,您可以使用,它使用
IgniteCache#invoke()
方法。

如果您有旧对象的副本,您可以使用
IgniteCache#replace(键、旧值、新值)


对于更复杂的东西,可以使用,它使用
IgniteCache#invoke()
方法。

我已经尝试过replace(),但是invoke()看起来像是我正在寻找的东西。我试试看。谢谢!我已经尝试过replace(),但是invoke()看起来像是我正在寻找的东西。我试试看。谢谢!