2

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

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

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

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

4

3 回答 3

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是一个双精度数,因此应该将其转换为双精度数,而不是布尔值。不幸的是,将 bool 分配给 double 在 C++ 中是有效的,因此编译器没有抱怨。

于 2014-12-05T08:14:56.670 回答
0

您是否尝试过使用超时指令?

--server.keep-alive-timeout=X

其中 X 以秒为单位。

或者您可以将其插入到服务器部分下的 arangod.conf 文件中,如下所示

keep-alive-timout=X

根据说明书

允许指定 HTTP keep-alive 连接的超时时间。超时值必须以秒为单位。达到超时时,服务器将自动关闭空闲的保活连接。

于 2014-12-05T02:21:36.750 回答
0

[我有同样的问题,但在服务器范围内,我很难找到答案,而且这个问题在搜索中排名靠前,所以我在这里记录下来以供后代使用。]

根据https://www.arangodb.com/docs/stable/programs-arangod-options.html ,服务器范围的设置是query.registry-ttl,您可以通过以下方式获取当前服务器设置

要列出正在运行的 arangod 实例的配置选项,您可以连接 ArangoShell 并通过调用 db._executeTransaction() 并提供 JavaScript 函数来检索服务器选项来调用事务:

arangosh> db._executeTransaction({ collections: {}, action: function() {return require("internal").options();} })

根据https://www.arangodb.com/docs/stable/administration-configuration.html#ex-listCurrentConfigOpts

于 2021-09-20T15:33:16.807 回答