我正在尝试使用java客户端在couchbase上执行批处理操作。我使用的版本是1.4.6(我希望最新)。
问题是client.getBulk()
和async都会产生超时异常 - 即使设置超时似乎没有帮助。见下面的代码。
for (int i = 0; i < keys.length; i++) {
gets.add(client.asyncGet(keys[i]));
}
for (GetFuture future : gets) {
results.add(future.get(1, TimeUnit.SECONDS).toString());
}
任何想法为什么我会得到这个例外以及如何解决它?
Exception :
java.util.concurrent.ExecutionException:
net.spy.memcached.internal.CheckedOperationTimeoutException:
Operation timed out. - failing node: ip-172-31-44-108.ec2.internal/172.31.44.108:11210
at net.spy.memcached.internal.OperationFuture.get(OperationFuture.java:180)
at net.spy.memcached.internal.GetFuture.get(GetFuture.java:69)
答案 0 :(得分:1)
在创建沙发床环境对象时设置keepAliveTimeout。将超时设置为100000000
DefaultCouchbaseEnvironment.builder().connectTimeout(couchbaseSetting.getConnectionTimeout())
.keepAliveTimeout(couchbaseSetting.getKeepAliveTimeout())
.queryTimeout(couchbaseSetting.getQueryTimeout())
.socketConnectTimeout(couchbaseSetting.getSocketTimeout()).build()