我有一个业务需求,希望能够在被 watch 的关键字发生变化后,程序线程 sleep1 秒,然后重新执行事务,直到执行成功。(若中途发生了其他 exception ,则中断操作)
在 python 中可以通过 catch watchError 异常,从而能够实现重新执行事务的可能性。
但是在 java 中使用 spring data redis 时,事务是这样实现的:
//execute a transaction
List txResults = redisTemplate.execute(new SessionCallback>() {
public List execute(RedisOperations operations) throws DataAccessException {
operations.multi();
operations.opsForSet().add("key", "value1");
// This will contain the results of all ops in the transaction
return operations.exec();
}
});
System.out.println("Number of items added to set: " + txResults.get(0));
到底在java中如何有办法获取到 WatchException 的方法呢?