使用ArangoDB 2.3.1。看来我的游标会在几分钟内到期。我希望他们能持续一个小时。我使用TTL参数设置了我的AQL查询对象,如下所示:
{
"query": 'removed actual query',
"count": true,
"batchSize": 5,
"ttl": 3600000
}
我的理解是TTL参数应告诉服务器将服务器保持3600000毫秒或1小时。但它会在大约60秒内到期。事实上,我已经尝试将TTL更改为几个不同的数字,但它似乎没有做任何事情。有什么想法吗?
更新:我从arango收到的实际错误是“找不到游标”
答案 0 :(得分:4)
大家都是对的。但我认为这是2.3中的一个错误:
--- a/arangod/V8Server/v8-vocbase.cpp
+++ b/arangod/V8Server/v8-vocbase.cpp
@@ -1216,13 +1216,13 @@ static v8::Handle<v8::Value> JS_ExecuteAql (v8::Arguments const& argv) {
optionName = v8::String::New("ttl");
if (argValue->Has(optionName)) {
- ttl = TRI_ObjectToBoolean(argValue->Get(optionName));
+ ttl = TRI_ObjectToDouble(argValue->Get(optionName));
ttl = (ttl <= 0.0 ? 30.0 : ttl);
}
ttl 是双重的,所以它应该被转换为double,而不是bool。 不幸的是,将bool分配给double在C ++中是有效的,因此编译器没有抱怨。
答案 1 :(得分:0)
您是否尝试过使用超时指令?
--server.keep-alive-timeout=X
其中X以秒为单位。
或者您可以将其插入服务器部分下的arangod.conf文件中作为
keep-alive-timout=X
根据手册
允许指定HTTP保持活动连接的时间。超时值必须以秒为单位。当达到超时时,服务器将自动关闭空闲保持连接。