Преглед на файлове

ft: 代码调整

master
SisMaker преди 3 години
родител
ревизия
06de191716
променени са 6 файла, в които са добавени 131 реда и са изтрити 149 реда
  1. +56
    -81
      src/agApi/agCollections.erl
  2. +61
    -62
      src/agApi/agDocuments.erl
  3. +4
    -0
      src/agVstCli/agAgencyUtils.erl
  4. +2
    -2
      src/agVstCli/agSslAgencyIns.erl
  5. +3
    -2
      src/agVstCli/agTcpAgencyIns.erl
  6. +5
    -2
      src/user_default.erl

+ 56
- 81
src/agApi/agCollections.erl Целия файл

@ -185,6 +185,21 @@ collCnt(PoolNameOrSocket, CollName) ->
Path = <<"/_api/collection/", CollName/binary, "/count">>,
agVstCli:callAgency(PoolNameOrSocket, ?AgGet, Path).
%
% PUT /_api/collection/{collection-name}/recalculateCount
%
% collection-name
%
%
% true
% RocksDB存储引擎
%
% 200HTTP 200
% 404HTTP 404
collRecnt(PoolNameOrSocket, CollName) ->
Path = <<"/_api/collection/", CollName/binary, "/recalculateCount">>,
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path).
%
% GET /_api/collection/{collection-name}/figures
% 3.4.0使ID访问集合
@ -300,7 +315,7 @@ collChecksum(PoolNameOrSocket, CollName, QueryPars) ->
% GET /_api/collection
% 3.4.0使ID访问集合
%
% e
% excludeSystem
% 使使
% excludeSystem提供值为true的值
%
@ -336,8 +351,7 @@ loadColl(PoolNameOrSocket, CollName) ->
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path).
loadColl(PoolNameOrSocket, CollName, MapData) ->
BodyStr = eVPack:encodeBin(MapData),
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, <<"/_api/collection/", CollName/binary, "/load">>, ?AgDefQuery, ?AgDefHeader, BodyStr).
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, <<"/_api/collection/", CollName/binary, "/load">>, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapData)).
%
% PUT /_api/collection/{collection-name}/unload
@ -358,57 +372,6 @@ unloadColl(PoolNameOrSocket, CollName) ->
Path = <<"/_api/collection/", CollName/binary, "/unload">>,
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path).
%
% PUT /_api/collection/{collection-name}/loadIndexesIntoMemory
% 3.4.0使ID访问集合
%
% collection-namecollection的所有索引条目缓存到主内存中
% RocksDB存储引擎上有用MMFiles引擎中
% RocksDB上
% result设置为的对象true
%
% 200
% 400HTTP 400
% 404HTTP 404
collLoadIndexesIntoMemory(PoolNameOrSocket, CollName) ->
Path = <<"/_api/collection/", CollName/binary, "/loadIndexesIntoMemory">>,
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path).
%
% PUT /_api/collection/{collection-name}/properties
% 3.4.0使ID访问集合
%
% collection-name
%
% waitForSynctrue
% journalSize10485761 MBjournalSize值时
% schemarulelevel并且message必须遵循文档架构验证中记录的规则
%
%
% id
% name
% waitForSync
% journalSize
% status
% type
% 2
% 3
% isSystemtrue
% isVolatiletrueArangoDB不会将数据写入或同步到磁盘
% doCompact
% keyOptionsJSON对象
% typeuuid的
% allowUserKeystrue_key属性中提供自己的键值 false_key属性中提供自己的密钥值被视为错误
% schemanullrulelevel并且message必须遵循文档架构验证中记录的规则
% waitForSyncjournalSize和name之外使
%
% 400HTTP 400
% 404 HTTP 404
collChangeProps(PoolNameOrSocket, CollName, MapData) ->
Path = <<"/_api/collection/", CollName/binary, "/properties">>,
BodyStr = eVPack:encodeBin(MapData),
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, ?AgDefQuery, ?AgDefHeader, BodyStr).
%
% PUT /_api/collection/{collection-name}/rename
% 3.4.0使ID访问集合
@ -431,37 +394,49 @@ collChangeProps(PoolNameOrSocket, CollName, MapData) ->
% 404 HTTP 404
renameColl(PoolNameOrSocket, OldName, MapData) ->
Path = <<"/_api/collection/", OldName/binary, "/rename">>,
BodyStr = eVPack:encodeBin(MapData),
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, ?AgDefQuery, ?AgDefQuery, BodyStr).
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapData)).
%
% PUT /_api/collection/{collection-name}/rotate
%
% PUT /_api/collection/{collection-name}/loadIndexesIntoMemory
% 3.4.0使ID访问集合
%
% collection-name
% Rotate方法的目的是使文件中的数据可用于压缩
%
%
% true
% MMFiles存储引擎
% collection-namecollection的所有索引条目缓存到主内存中
% RocksDB存储引擎上有用MMFiles引擎中
% RocksDB上
% result设置为的对象true
%
% 400HTTP 400
% 200
% 400HTTP 400
% 404HTTP 404
% 3.7
collRotate(PoolNameOrSocket, CollName) ->
Path = <<"/_api/collection/", CollName/binary, "/rotate">>,
collLoadIndexesIntoMemory(PoolNameOrSocket, CollName) ->
Path = <<"/_api/collection/", CollName/binary, "/loadIndexesIntoMemory">>,
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path).
%
% PUT /_api/collection/{collection-name}/recalculateCount
%
% PUT /_api/collection/{collection-name}/properties
% 3.4.0使ID访问集合
%
% collection-name
%
%
% true
% RocksDB存储引擎
%
% 200HTTP 200
% 404HTTP 404
collRecount(PoolNameOrSocket, CollName) ->
Path = <<"/_api/collection/", CollName/binary, "/recalculateCount">>,
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path).
%
%
% waitForSynctrue
% schemarulelevel并且message必须遵循文档架构验证中记录的规则
%
% id
% name
% waitForSync
% status
% type
% 2
% 3
% isSystemtrue
% keyOptions JSON
% typeuuid
% allowUserKeystrue_key属性中提供自己的键值 false_key属性中提供自己的密钥值被视为错误
% schemanullrulelevel并且message必须遵循文档架构验证中记录的规则
% waitForSync和name 使
%
% 400HTTP 400
% 404 HTTP 404
collChangeProps(PoolNameOrSocket, CollName, MapData) ->
Path = <<"/_api/collection/", CollName/binary, "/properties">>,
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapData)).

+ 61
- 62
src/agApi/agDocuments.erl Целия файл

@ -122,11 +122,11 @@ getDoc(PoolNameOrSocket, CollName, Key, Headers) ->
% 304 If-None-Match
% 404
% 412 If-Match412Etag标头中包含找到的文档的当前版本
getDocHead(PoolNameOrSocket, CollName, Key) ->
getHead(PoolNameOrSocket, CollName, Key) ->
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>,
agVstCli:callAgency(PoolNameOrSocket, ?AgHead, Path).
getDocHead(PoolNameOrSocket, CollName, Key, Headers) ->
getHead(PoolNameOrSocket, CollName, Key, Headers) ->
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>,
agVstCli:callAgency(PoolNameOrSocket, ?AgHead, Path, ?AgDefQuery, Headers, ?AgDefBody).
@ -168,13 +168,11 @@ getDocHead(PoolNameOrSocket, CollName, Key, Headers) ->
% 409409
newDoc(PoolNameOrSocket, CollName, MapData) ->
Path = <<"/_api/document/", CollName/binary>>,
BodyStr = eVPack:encodeBin(MapData),
agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, ?AgDefQuery, ?AgDefHeader, BodyStr).
agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapData)).
newDoc(PoolNameOrSocket, CollName, MapData, QueryPars) ->
Path = <<"/_api/document/", CollName/binary>>,
BodyStr = eVPack:encodeBin(MapData),
agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, QueryPars, ?AgDefHeader, BodyStr).
agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, QueryPars, ?AgDefHeader, eVPack:encodeBin(MapData)).
%
% PUT /_api/document/{collection}/{key}
@ -211,18 +209,15 @@ newDoc(PoolNameOrSocket, CollName, MapData, QueryPars) ->
% 412_rev _id和_key
replaceDoc(PoolNameOrSocket, CollName, Key, MapData) ->
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>,
BodyStr = eVPack:encodeBin(MapData),
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, ?AgDefQuery, ?AgDefHeader, BodyStr).
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapData)).
replaceDoc(PoolNameOrSocket, CollName, Key, MapData, QueryPars) ->
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>,
BodyStr = eVPack:encodeBin(MapData),
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, QueryPars, ?AgDefHeader, BodyStr).
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, QueryPars, ?AgDefHeader, eVPack:encodeBin(MapData)).
replaceDoc(PoolNameOrSocket, CollName, Key, MapData, QueryPars, Headers) ->
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>,
BodyStr = eVPack:encodeBin(MapData),
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, QueryPars, Headers, BodyStr).
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, QueryPars, Headers, eVPack:encodeBin(MapData)).
%
% PATCH /_api/document/{collection}/{key}
@ -262,18 +257,15 @@ replaceDoc(PoolNameOrSocket, CollName, Key, MapData, QueryPars, Headers) ->
% 412_rev _id和_key
updateDoc(PoolNameOrSocket, CollName, Key, MapData) ->
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>,
BodyStr = eVPack:encodeBin(MapData),
agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, ?AgDefQuery, ?AgDefHeader, BodyStr).
agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapData)).
updateDoc(PoolNameOrSocket, CollName, Key, MapData, QueryPars) ->
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>,
BodyStr = eVPack:encodeBin(MapData),
agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, QueryPars, ?AgDefHeader, BodyStr).
agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, QueryPars, ?AgDefHeader, eVPack:encodeBin(MapData)).
updateDoc(PoolNameOrSocket, CollName, Key, MapData, QueryPars, Headers) ->
Path = <<"/_api/document/", CollName/binary, "/", (agMiscUtils:toBinary(Key))/binary>>,
BodyStr = eVPack:encodeBin(MapData),
agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, QueryPars, Headers, BodyStr).
agVstCli:callAgency(PoolNameOrSocket, ?AgPatch, Path, QueryPars, Headers, eVPack:encodeBin(MapData)).
%
% DELETE /_api/document/{collection}/{key}
@ -329,54 +321,63 @@ delDoc(PoolNameOrSocket, CollName, Key, QueryPars, Headers) ->
% _rev条件不满足 使
getDocs(PoolNameOrSocket, CollName, KeyOrMapDataList) ->
Path = <<"/_api/document/", CollName/binary>>,
BodyStr = eVPack:encodeBin(KeyOrMapDataList),
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, #{<<"onlyget">> => <<"true">>}, ?AgDefHeader, BodyStr).
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, #{<<"onlyget">> => <<"true">>}, ?AgDefHeader, eVPack:encodeBin(KeyOrMapDataList)).
getDocs(PoolNameOrSocket, CollName, KeyOrMapDataList, QueryPars) ->
LastQueryPars = QueryPars#{<<"onlyget">> => <<"true">>},
LastQueryPars = case QueryPars of
#{<<"onlyget">> := <<"true">>} ->
QueryPars;
#{onlyget := <<"true">>} ->
QueryPars;
_ ->
QueryPars#{<<"onlyget">> => <<"true">>}
end,
Path = <<"/_api/document/", CollName/binary>>,
BodyStr = eVPack:encodeBin(KeyOrMapDataList),
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, LastQueryPars, ?AgDefHeader, BodyStr).
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, LastQueryPars, ?AgDefHeader, eVPack:encodeBin(KeyOrMapDataList)).
%
% POST /_api/document/{collection}#multiple
%
% collection
%
% collectionArangoDB版本<3.0URL路径为/ _api / documentURL路径中指定集合
% waitForSync
% returnNew new属性下返回完整的新文档
% returnOld old属性下返回完整的旧文档使
% silenttrue
% overwritetrue_key的文档
% json
% collection ArangoDB < 3.0 URL /_api/document并且需要此查询参数 URL
% waitForSync
% returnNew new下的完整新文档
% returnOld old下的完整旧文档使
% silent true
% overwritetrue_key的文档已经存在overwrite参数的操作需要_key请求有效负载中的属性 _key
% overwriteMode
% "ignore": _key值的文档已经存在使 RETURN OLD使 RETURN NEWnull
% "replace": _key值的文档已经存在 true时使
% "update"_key值的文档已经存在使keepNull和 mergeObjects参数进一步控制
% "conflict": _key值的文档已经存在便false或未设置
% keepNull使 update-insert 使 false的 URL keepNull patch patch null的现有文档中删除任何属性
% mergeObjectsfalsetruetrue
% (json)
%
% _key的文档_key_key
% JSON数组error设置为trueerrorCode设置为发生的错误代码
% _id和_rev属性被忽略URL部分或查询参数集合分别计数
% silent未设置为trueJSON对象数组
% _id包含新创建的文档的文档标识符
% _key包含文档密钥
% _rev包含文档修订版
% collection参数waitForSync为false
% 使waitForSync标志waitForSync也可用于强制将文档创建操作同步到磁盘waitForSync查询参数可用于强制执行此特定操作的同步使waitForSync参数设置为true waitForSync参数或将其设置为falsewaitForSync行为waitForSync查询参数不能用于禁用同步用于具有默认集合waitForSync值为true
% returnNew为truenew属性下返回完整的新文档
% HTTP头的文件已经发生了错误的X阿朗戈-120510,121017101205171210
%
% 201waitForSync为true
% 202waitForSync为false并且已处理操作
% 400JSON表示形式
% 404collection指定的collection未知
% MapDataList的顺序返回执行结果
% _key的文档_key被赋予一个新的独特的_key自动生成
% JSON error设置为true并且 errorCode
% _id和_rev属性总是被忽略URL
% Silent未设置为true JSON
% _id包含新创建的文档的文档标识符
% _key包含文档密钥
% _rev包含文档修订
% waitForSync为false
% waitForSync可用于强制将文档创建操作同步到磁盘使waitForSync标志已被禁用的情况下waitForSync查询参数可用于强制仅同步此特定操作使waitForSync参数设置为true waitForSync参数或将其设置为falsewaitForSync行为waitForSync查询参数不能用于禁用同步用于具有默认集合waitForSync值为true
% returnNew为truenew属性下返回完整的新文档
% HTTP头的文件已经发生了错误的X阿朗戈-120510,121017 10 1205 17 1210
%
% 201waitForSync为true并且操作已处理
% 202waitForSync为false并且操作已处理
% 400 JSON
% 404collection指定的collection未知时返回
newDocs(PoolNameOrSocket, CollName, MapDataList) ->
Path = <<"/_api/document/", CollName/binary>>,
BodyStr = eVPack:encodeBin(MapDataList),
agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, ?AgDefQuery, ?AgDefHeader, BodyStr).
agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapDataList)).
newDocs(PoolNameOrSocket, CollName, MapDataList, QueryPars) ->
Path = <<"/_api/document/", CollName/binary>>,
BodyStr = eVPack:encodeBin(MapDataList),
agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, QueryPars, ?AgDefHeader, BodyStr).
agVstCli:callAgency(PoolNameOrSocket, ?AgPost, Path, QueryPars, ?AgDefHeader, eVPack:encodeBin(MapDataList)).
%
% PUT /_api/document/{collection}
@ -405,25 +406,23 @@ newDocs(PoolNameOrSocket, CollName, MapDataList, QueryPars) ->
% 404
replaceDocs(PoolNameOrSocket, CollName, MapDataList) ->
Path = <<"/_api/document/", CollName/binary>>,
BodyStr = eVPack:encodeBin(MapDataList),
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, ?AgDefQuery, ?AgDefHeader, BodyStr).
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, ?AgDefQuery, ?AgDefHeader, eVPack:encodeBin(MapDataList)).
replaceDocs(PoolNameOrSocket, CollName, MapDataList, QueryPars) ->
Path = <<"/_api/document/", CollName/binary>>,
BodyStr = eVPack:encodeBin(MapDataList),
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, QueryPars, ?AgDefHeader, BodyStr).
agVstCli:callAgency(PoolNameOrSocket, ?AgPut, Path, QueryPars, ?AgDefHeader, eVPack:encodeBin(MapDataList)).
%
% PATCH /_api/document/{collection}
%
% collection
%
% keepNull使patch命令删除现有属性URL查询参数keepNull与false一起使用patch命令的行为null的现有文档
% mergeObjectsfalsetrue true
% waitForSync
% ignoreRevstrue_rev属性false_rev属性作为前提
% returnOldold属性下还返回更改后的文档的完整先前修订
% returnNew new属性下还返回完整的新文档
% keepNull使patch命令删除现有属性URL查询参数keepNull与false一起使用patch命令的行为null的现有文档
% mergeObjectsfalsetrue true
% waitForSync
% ignoreRevstrue_rev属性false_rev属性作为前提
% returnOldold属性下还返回更改后的文档的完整先前修订
% returnNew new属性下还返回完整的新文档
% json
% JSON表示形式是对象
% _key属性指定JSON数组
@ -473,7 +472,7 @@ updateDocs(PoolNameOrSocket, CollName, MapDataList, QueryPars) ->
delDocs(PoolNameOrSocket, CollName, KeyOrMapDataList) ->
Path = <<"/_api/document/", CollName/binary, "/">>,
BodyStr = eVPack:encodeBin(KeyOrMapDataList),
agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, ?AgDefQuery, ?AgDefQuery, BodyStr).
agVstCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, ?AgDefQuery, ?AgDefHeader, BodyStr).
delDocs(PoolNameOrSocket, CollName, KeyOrMapDataList, QueryPars) ->
Path = <<"/_api/document/", CollName/binary>>,

+ 4
- 0
src/agVstCli/agAgencyUtils.erl Целия файл

@ -80,10 +80,14 @@ initReConnState(IsReconnect, Min, Max) ->
end.
-spec resetReConnState(undefined | reConnState()) -> reConnState() | undefined.
resetReConnState(undefined) ->
undefined;
resetReConnState(#reConnState{min = Min} = ReConnState) ->
ReConnState#reConnState{current = Min}.
-spec updateReConnState(reConnState()) -> reConnState().
updateReConnState(undefined) ->
undefined;
updateReConnState(#reConnState{current = Current, max = Max} = ReConnState) ->
NewCurrent = Current + Current,
ReConnState#reConnState{current = if NewCurrent >= Max -> Max; true -> NewCurrent end}.

+ 2
- 2
src/agVstCli/agSslAgencyIns.erl Целия файл

@ -84,7 +84,7 @@ handleMsg({ssl_error, Socket, Reason},
ssl:close(Socket),
agAgencyUtils:dealClose(SrvState, CliState, {error, {ssl_error, Reason}});
handleMsg(?AgMDoDBConn,
#srvState{poolName = PoolName, serverName = ServerName, reConnState = _ReConnState} = SrvState,
#srvState{poolName = PoolName, serverName = ServerName, reConnState = ReConnState} = SrvState,
CliState) ->
case ?agBeamPool:getv(PoolName) of
#dbOpts{port = Port, hostname = HostName, dbName = DbName, user = User, password = Password, vstSize = VstSize} ->
@ -97,7 +97,7 @@ handleMsg(?AgMDoDBConn,
{ok, MsgBin} ->
case eVPack:decodeHeader(MsgBin) of
[1, 2, 200, _] ->
{ok, SrvState#srvState{dbName = DbName, socket = Socket, vstSize = VstSize}, CliState};
{ok, SrvState#srvState{dbName = DbName, reConnState = agAgencyUtils:resetReConnState(ReConnState), socket = Socket, vstSize = VstSize}, CliState};
_Err ->
?AgWarn(ServerName, "auth error: ~p~n", [_Err]),
agAgencyUtils:reConnTimer(SrvState, CliState)

+ 3
- 2
src/agVstCli/agTcpAgencyIns.erl Целия файл

@ -90,7 +90,7 @@ handleMsg({tcp_error, Socket, Reason},
gen_tcp:close(Socket),
agAgencyUtils:dealClose(SrvState, CliState, {error, {tcp_error, Reason}});
handleMsg(?AgMDoDBConn,
#srvState{poolName = PoolName, serverName = ServerName, reConnState = _ReConnState} = SrvState,
#srvState{poolName = PoolName, serverName = ServerName, reConnState = ReConnState} = SrvState,
CliState) ->
case ?agBeamPool:getv(PoolName) of
#dbOpts{port = Port, hostname = HostName, dbName = DbName, user = User, password = Password, vstSize = VstSize} ->
@ -103,7 +103,8 @@ handleMsg(?AgMDoDBConn,
{ok, MsgBin} ->
case eVPack:decodeHeader(MsgBin) of
[1, 2, 200, _] ->
{ok, SrvState#srvState{dbName = DbName, socket = Socket, vstSize = VstSize}, CliState};
?AgWarn(ServerName, "connect success: old server state:~n ~p~n client state~n ~p ~n", [SrvState, CliState]),
{ok, SrvState#srvState{dbName = DbName, reConnState = agAgencyUtils:resetReConnState(ReConnState), socket = Socket, vstSize = VstSize}, CliState};
_Err ->
?AgWarn(ServerName, "auth error: ~p~n", [_Err]),
agAgencyUtils:reConnTimer(SrvState, CliState)

+ 5
- 2
src/user_default.erl Целия файл

@ -6,11 +6,14 @@
start() ->
eSync:run(),
application:ensure_all_started(eArango),
agVstCli:startPool(tt, [{poolSize, 10}], []).
agVstCli:startPool(tt, [{poolSize, 1}], []).
stop() ->
agVstCli:stopPool(tt).
tt(C, N) ->
application:ensure_all_started(eArango),
agVstCli:startPool(tt, [{poolSize, 16}], []),
agVstCli:startPool(tt, [{poolSize, 1}], []),
StartTime = erlang:system_time(millisecond),
io:format("IMY********************** started~n"),
[spawn(?MODULE, test, [N, StartTime]) || _Idx <- lists:seq(1, C)].

Зареждане…
Отказ
Запис