如何使用SELECT ..在Apache的更新点燃



我正在使用apache ignite,其中多个客户端节点(spring引导应用程序)正在运行。我想获得锁在一个缓存/表项选择&自动更新,使其他进程无法更新它。类似于MYSQLSELECT FOR UPDATE

<标题>

Usecase描述我在缓存/表中有记录TO_BE_PROCESSED的地位。我的cron作业选择记录并更新IN_PROGRESS中的记录根据业务逻辑对条目进行状态和处理。因为我有多个客户端实例正在运行。我不想对每个条目重复处理。

点燃2。x没有SQL事务,所以没有SELECT FOR UPDATE,但它在使用键值API时支持事务。你需要这样做:

try (var tx = ignite.transactions().txStart()) {
cache.get(recordToUpdate1);
cache.get(recordToUpdate2);
// ... do processing ...
cache.put(recordToUpdate1, value1);
cache.put(recordToUpdate2, value2);
tx.commit();
}

最新更新