我有一个业务需求,希望能够在被 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 的方法呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.