全部产品

配置Gremlin请求超时时间

图数据库GDB有配置请求的默认超时时间,通常该值是30s,但实际开发中根据不同使用场景、数据量等对具体请求有预期的执行时间。

以下介绍各语言接入使用scripts请求的超时时间配置,示例配置超时时间为5000ms,仅给出关键部分代码。

说明
  • 超时时间值是long类型,单位毫秒(ms)。

  • 不要配置过大的超时时间,复杂任务推荐使用GDB图分析功能。

  • 客户端在请求超时前断开到GDB的连接会导致请求的更新不生效。

  • 以下代码片段请结合各语言SDK文档修改完善,示例只展示超时时间配置的关键部分,其余以注释标明。

Java 请求超时时间配置

// 1. 初始化客户端 client

// 2. 配置请求参数,包括超时时间,bindings参数化
RequestOptions.Builder options = RequestOptions.build().timeout(5000);
options.addParameter("G___id", "sand131_id_5_99");

String dsl = "g.V(G___id)";
// 3. 发送请求到GDB服务端,同时提供请求的配置
ResultSet results = client.submit(dsl, options.create());

// 4. 结束任务后关闭客户端 client
说明

将sand131_id_5_99替换为实际请求参数。

Gremlin-console 请求超时时间配置

:remote config timeout 5000

Python 请求超时时间配置

from gremlin_python.driver.request import RequestMessage

# 1. 初始化客户端 client

dsl = "g.V(G___id)";
parameters = {}
parameters["G___id"] = "sand131_id_5_99"

# 2. 配置请求,包括超时时间,bindings参数化,请求语句
message = RequestMessage('', 'eval', {'gremlin': dsl, 'scriptEvaluationTimeout': 5000, 'bindings': parameters})

# 3. 发送请求到GDB服务端,同时包含有请求的配置
results = client.submit(message).all().result()

# 4. 结束任务后关闭客户端 client
说明

将sand131_id_5_99替换为实际请求参数。

.Net 请求超时时间配置

// 1. 初始化客户端 client

string dsl = "g.V(G___id)";
Dictionary<string, object> bindings = new Dictionary<string, object> {{"G___id", "sand131_id_5_99"}};

// 2. 配置请求,包括超时时间,bindings参数化,请求语句
var msgBuilder = RequestMessage.Build(Tokens.OpsEval).AddArgument(Tokens.ArgsGremlin, dsl)
        .AddArgument(Tokens.ArgsBindings, bindings).AddArgument("scriptEvaluationTimeout", 5000);

// 3. 发送请求到GDB服务端,同时包含有请求的配置
await gremlinClient.SubmitAsync<T>(msgBuilder.Create()).ConfigureAwait(false);

// 4. 结束任务后关闭客户端 client
说明

将sand131_id_5_99替换为实际请求参数。

Go 请求超时时间配置

import "github.com/aliyun/alibabacloud-gdb-go-sdk/gdbclient/graph"

// 1. 初始化客户端 client

parameters := make(map[string]interface{})
parameters["G___id"] = "sand131_id_5_99"

// 2. 配置请求参数,包括超时时间,bindings参数化
options := graph.NewRequestOptionsWithBindings(bindings)
options.SetTimeout(5000)

// 3. 发送请求到GDB服务端,同时提供请求的配置
dsl := "g.V(G___id)"
results, err := client.SubmitScriptOptions(dsl, options)

// 4. 结束任务后关闭客户端 client
说明

将sand131_id_5_99替换为实际请求参数。

bytecode请求超时时间配置

图数据库支持bytecode请求的超时时间配置,Java 环境使用如下(其他环境暂不支持)。

g.with('scriptEvaluationTimeout', 2000).V().limit(1).toList()