ArangoDB游标超时

时间:2014-12-04 22:01:07

标签: cursor ttl arangodb content-expiration

使用ArangoDB 2.3.1。看来我的游标会在几分钟内到期。我希望他们能持续一个小时。我使用TTL参数设置了我的AQL查询对象,如下所示:

{
    "query": 'removed actual query',
    "count": true,
    "batchSize": 5,
    "ttl": 3600000
}

我的理解是TTL参数应告诉服务器将服务器保持3600000毫秒或1小时。但它会在大约60秒内到期。事实上,我已经尝试将TTL更改为几个不同的数字,但它似乎没有做任何事情。有什么想法吗?

更新:我从arango收到的实际错误是“找不到游标”

2 个答案:

答案 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保持活动连接的时间。超时值必须以秒为单位。当达到超时时,服务器将自动关闭空闲保持连接。