【发布时间】:2019-05-16 15:55:32
【问题描述】:
我正在尝试用vertx-redis-client 执行multi,版本是3.7.0。文档非常糟糕,我什至不知道如何使用multi。我以某种方式尝试了以下代码。输出非常不一致。有时它会正常执行,有时会抛出错误说ERR EXEC without MULTI
代码:
Map<String,String> keyFields = new HashMap<>();
keyFields.put("{test}:t1", "f1");
keyFields.put("{test}:t2", "f2");
redisAPI.multi(ar1 -> {
for (Map.Entry<String, String> e: keyFields.entrySet()) {
redisAPI.hget(e.getKey(), e.getValue(), ar2 -> {
if ("QUEUED".equals(ar2.result().toString())) {
System.out.println("its queued");
redisAPI.exec(execEvent -> {
System.out.println(execEvent);
System.out.println("Result is: "+ execEvent.result());
});
} else {
System.out.println("Result is: "+ ar2.result());
}
});
}
});
输出错误:
its queued
Future{cause=ERR EXEC without MULTI}
Result is: null
its queued
Future{cause=ERR EXEC without MULTI}
Result is: null
没有错误:
Result is: v2
Result is: v1
代码有什么问题?
【问题讨论】:
标签: vert.x