gpt4 book ai didi

java - 无法使用 groovy 脚本在 couchbase 上创建主索引

转载 作者:行者123 更新时间:2023-12-02 02:18:01 25 4
gpt4 key购买 nike

我无法使用 groovy 脚本在 couchbase 上创建主索引。以下是我使用的代码行:-

@Grab('com.couchbase.client:java-client:2.2.6')

import java.util.concurrent.CountDownLatch;
import com.couchbase.client.java.Bucket;
import com.couchbase.client.java.Cluster;
import com.couchbase.client.java.CouchbaseCluster;
import com.couchbase.client.java.document.JsonDocument;
import com.couchbase.client.java.document.json.JsonObject;
import com.couchbase.client.java.CouchbaseCluster
import com.couchbase.client.java.query.N1qlQuery;
import com.couchbase.client.java.query.N1qlQueryResult;
import com.couchbase.client.java.query.N1qlQueryRow;
import com.couchbase.client.java.query.SimpleN1qlQuery;
import com.couchbase.client.java.env.CouchbaseEnvironment;
import com.couchbase.client.java.env.DefaultCouchbaseEnvironment;

CouchbaseEnvironment env = DefaultCouchbaseEnvironment.builder().connectTimeout(10000).build();
def cluster = CouchbaseCluster.create(env, IPADDRESS);
def bucket = cluster.openBucket(BUCKET_NAME, BUCKET_PASSWORD);
log.info "Connection done"

String queryString = "CREATE PRIMARY INDEX `PrimInd` ON BUCKET_NAME"
bucket.query(N1qlQuery.simple(queryString))

log.info "Primary index created"

它给了我如下错误:-

java.lang.RuntimeException: java.util.concurrent.TimeoutException at this line:-

bucket.query(N1qlQuery.simple(queryString))

连接正确完成,并且相同的查询在 couchbase 服务器中工作。所以,我认为我的代码有问题。

你能帮我解决这个问题吗?

最佳答案

在 Couchbase Java 客户端中,query() 方法委托(delegate)给一个在幕后使用 JavaRx 的 Blocking API。 source阻止 API 的代码状态:

If an error happens inside the Observable, it will be raised as an Exception. If the timeout kicks in, a TimeoutException nested in a RuntimeException is thrown to be fully compatible with the Observable.timeout(long, TimeUnit) behavior.

您遇到了嵌套在 RuntimeException 中的 TimeoutException,因此根本原因是您的查询超时。

默认CouchbaseEnvironment defaults到 75 毫秒的 queryTimeout(N1qlQuery 查询的超时 used)。您可以使用环境构建器更改此默认值:

def env = DefaultCouchbaseEnvironment.builder()
.connectTimeout(10000)
.queryTimeout(10000) // This is the query timeout
.build()

关于java - 无法使用 groovy 脚本在 couchbase 上创建主索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48986045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com