Couchbase async get或multi get

时间:2014-12-23 12:51:45

标签: java couchbase

我正在尝试使用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)

1 个答案:

答案 0 :(得分:1)

在创建沙发床环境对象时设置keepAliveTimeout。将超时设置为100000000

DefaultCouchbaseEnvironment.builder().connectTimeout(couchbaseSetting.getConnectionTimeout())
            .keepAliveTimeout(couchbaseSetting.getKeepAliveTimeout())
            .queryTimeout(couchbaseSetting.getQueryTimeout())
            .socketConnectTimeout(couchbaseSetting.getSocketTimeout()).build()