Browse Source

agApi/agAsyncResultHandling.erl模块改进

erlArango_v1
AICells 5 years ago
parent
commit
af1c12e7a8
1 changed files with 46 additions and 31 deletions
  1. +46
    -31
      src/agApi/agAsyncResultHandling.erl

+ 46
- 31
src/agApi/agAsyncResultHandling.erl View File

@ -10,44 +10,62 @@
% HTTP接口 % HTTP接口
% %
% ArangoDB提供了执行客户端请求的各种方法 % ArangoDB提供了执行客户端请求的各种方法
%
% %
% ArangoDB是多线程服务器线 % ArangoDB是多线程服务器线
%
% ArangoDB % ArangoDB
%
% 线 % 线
%
% 使HTTP连接 HttpJobPutCancel下的内容 % 使HTTP连接 HttpJobPutCancel下的内容
%
% %
% 1.4使ArangoDBHTTP标头x-arango-asynctrueArangoDB会将请求放入内存任务队列中HTTP请求返回HTTP 202 % 1.4使ArangoDBHTTP标头x-arango-asynctrueArangoDB会将请求放入内存任务队列中HTTP请求返回HTTP 202
%
% HTTP 202 % HTTP 202
%
% %
%
% %
%
% --server.maximal-queue-size确定HTTP 500 % --server.maximal-queue-size确定HTTP 500
%
% 使 HttpJobPutCancel % 使 HttpJobPutCancel
%
% %
% HTTP标头x-arango-asyncArangoDB服务器如上所述异步执行操作HTTP响应标头x-arango-async-id中返回作业IDID与/ _api / job上的HTTP API结合使用 % HTTP标头x-arango-asyncArangoDB服务器如上所述异步执行操作HTTP响应标头x-arango-async-id中返回作业IDID与/ _api / job上的HTTP API结合使用
%
% API询问ArangoDB服务器ID传递给异步作业APIID取消运行异步作业HttpJobPutCancel % API询问ArangoDB服务器ID传递给异步作业APIID取消运行异步作业HttpJobPutCancel
%
% ArangoDB将保留通过x-arango-async % ArangoDB将保留通过x-arango-async
%
% API还提供了用于垃圾回收的方法使ArangoDB不会人为地限制尚未获取的结果的数量 % API还提供了用于垃圾回收的方法使ArangoDB不会人为地限制尚未获取的结果的数量
%
% %
%
% %
%
% %
% 使ID取消异步运行的作业HttpJobPutCancel中所述PUT请求 % 使ID取消异步运行的作业HttpJobPutCancel中所述PUT请求
%
% C ++JavaScript代码执行CRUD操作直接在C ++AQL查询和事务由JavaScript代码执行JavaScript代码使JavaScript线程中触发不可捕获的异常C ++ % C ++JavaScript代码执行CRUD操作直接在C ++AQL查询和事务由JavaScript代码执行JavaScript代码使JavaScript线程中触发不可捕获的异常C ++
%
% DB-Server的任务 % DB-Server的任务
%
% %
% %
% HTTP
%
% %
% PUT /_api/job/{job-id} % PUT /_api/job/{job-id}
% %
% job-idID
% job-idID
% job-id标识的异步作业的结果job-id调用一次此方法HTTP标头x-arango-async-job-id % job-id标识的异步作业的结果job-id调用一次此方法HTTP标头x-arango-async-job-id
% %
% 204job-id请求的作业仍在待处理x-arango-async-id HTTP标头
% 400IDx-arango-async-id HTTP标头
% 404404x-arango-async-id HTTP标头
% 204job-id请求的作业仍在待处理x-arango-async-id HTTP标头
% 400IDx-arango-async-id HTTP标头
% 404404x-arango-async-id HTTP标头
getAsyncJobRet(PoolNameOrSocket, JodId) -> getAsyncJobRet(PoolNameOrSocket, JodId) ->
Path = <<"/_api/job/", (agMiscUtils:toBinary(JodId))/binary>>, Path = <<"/_api/job/", (agMiscUtils:toBinary(JodId))/binary>>,
agHttpCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], undefined). agHttpCli:callAgency(PoolNameOrSocket, ?AgPut, Path, [], undefined).
@ -69,52 +87,49 @@ cancelAsyncJob(PoolNameOrSocket, JodId) ->
% %
% DELETE /_api/job/{type}#by-type % DELETE /_api/job/{type}#by-type
% %
% type
% all
% expiredstamp必须是UNIX时间戳
% ID
% type
% all
% expiredstamp必须是UNIX时间戳
% an actual job-id
% %
% UNIX时间戳记
% stampUNIX时间戳记
% 使 % 使
% %
% 200
% 400type或值无效
% 404type为job-idid的异步作业404
delAsyncJobRet(PoolNameOrSocket, TypeOrJodId, Stamp) ->
Path =
case TypeOrJodId of
<<"expired">> ->
<<"/_api/job/expired?stamp=", (agMiscUtils:toBinary(Stamp))/binary>>;
_ ->
<<"/_api/job/", (agMiscUtils:toBinary(TypeOrJodId))/binary>>
end,
% 200
% 400type或值无效
% 404type为job-idid的异步作业404
delAsyncJobRet(PoolNameOrSocket, TypeOrJodId) ->
Path = <<"/_api/job/", (agMiscUtils:toBinary(TypeOrJodId))/binary>>,
agHttpCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined). agHttpCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined).
delAsyncJobRet(PoolNameOrSocket, TypeOrJodId, QueryPars) ->
QueryBinary = agMiscUtils:spellQueryPars(QueryPars),
Path = <<"/_api/job/", (agMiscUtils:toBinary(TypeOrJodId))/binary, QueryBinary/binary>>,
agHttpCli:callAgency(PoolNameOrSocket, ?AgDelete, Path, [], undefined).
% %
% GET /_api/job/{job-id} % GET /_api/job/{job-id}
% %
% job-idID
% job-idID
% HTTP响应代码来确定处理状态 % HTTP响应代码来确定处理状态
% %
% 200job-id请求的作业200
% 204job-id请求的作业仍在待处理
% 404404
% 200job-id请求的作业200
% 204job-id请求的作业仍在待处理
% 404404
getAsyncJobStatus(PoolNameOrSocket, JodId) -> getAsyncJobStatus(PoolNameOrSocket, JodId) ->
Path = <<"/_api/job/", (agMiscUtils:toBinary(JodId))/binary>>, Path = <<"/_api/job/", (agMiscUtils:toBinary(JodId))/binary>>,
agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined). agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined).
% ID % ID
% GET /_api/job/{type}#by-type % GET /_api/job/{type}#by-type
% %
% typedone将使该方法返回可以获取其结果的异步作业的IDID
% type done pending done将使该方法返回可以获取其结果的异步作业的IDpending将返回尚未完成的异步作业的ID
% %
% countID数使
% countID数使
% ID列表使 % ID列表使
% %
% 200
% 400type或值无效
% 200
% 400type或值无效
getAsyncJobList(PoolNameOrSocket, Type) -> getAsyncJobList(PoolNameOrSocket, Type) ->
Path = <<"/_api/job/", (agMiscUtils:toBinary(Type))/binary>>, Path = <<"/_api/job/", (agMiscUtils:toBinary(Type))/binary>>,
agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined). agHttpCli:callAgency(PoolNameOrSocket, ?AgGet, Path, [], undefined).

Loading…
Cancel
Save