我有一个业务需求,希望能够在被 watch 的关键字发生变化后,程序线程 sleep1 秒,然后重新执行事务,直到执行成功。(若中途发生了其他 exception ,则中断操作)
在 python 中可以通过 catch watchError 异常,从而能够实现重新执行事务的可能性。 但是在 java 中使用 spring data redis 时,事务是这样实现的:
//execute a transaction
List<Object> txResults = redisTemplate.execute(new SessionCallback<List<Object>>() {
public List<Object> 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));
网上搜了蛮久,官方文档也查了 官方文档连接: http://docs.spring.io/spring-data/redis/docs/current/reference/html/#tx ,但是还是没找到方法。
到底在java中如何有办法获取到 WatchException 的方法呢?
1
mikulch OP |
2
gdsagdada 2016-12-16 19:11:41 +08:00
代码问题问 stackoverflow.com
|