SisMaker пре 5 година
родитељ
комит
b236f177e4
5 измењених фајлова са 30 додато и 17 уклоњено
  1. +1
    -1
      include/agHttpCli.hrl
  2. +19
    -6
      src/httpCli/agHttpCli.erl
  3. +4
    -4
      src/httpCli/agSslAgencyIns.erl
  4. +4
    -4
      src/httpCli/agTcpAgencyIns.erl
  5. +2
    -2
      src/user_default.erl

+ 1
- 1
include/agHttpCli.hrl Прегледај датотеку

@ -18,7 +18,7 @@
-define(DEFAULT_RECONNECT_MAX, 120000).
-define(DEFAULT_TIMEOUT, infinity).
-define(DEFAULT_PID, self()).
-define(DEFAULT_SOCKET_OPTS, [binary, {active, true}, {nodelay, true}, {delay_send, true}, {keepalive, true}, {recbuf,1048576}, {send_timeout, 5000}, {send_timeout_close, true}]).
-define(DEFAULT_SOCKET_OPTS, [binary, {active, true}, {nodelay, true}, {delay_send, true}, {keepalive, true}, {recbuf, 1048576}, {send_timeout, 5000}, {send_timeout_close, true}]).
-define(GET_FROM_LIST(Key, List), agMiscUtils:getListValue(Key, List, undefined)).
-define(GET_FROM_LIST(Key, List, Default), agMiscUtils:getListValue(Key, List, Default)).

+ 19
- 6
src/httpCli/agHttpCli.erl Прегледај датотеку

@ -115,9 +115,12 @@ receiveRequestRet(RequestId, MonitorRef) ->
receive
#miRequestRet{requestId = RequestId, reply = Reply} ->
erlang:demonitor(MonitorRef),
% io:format("IMY********receiveRequestRet ~p~n", [Reply]),
case Reply of
{ok, Headers, Body} ->
{ok, Headers, jiffy:decode(Body, [return_maps, copy_strings])};
{ok, <<>>, _StatusCode, _Headers} ->
erlang:setelement(2, Reply, #{});
{ok, Body, _StatusCode, _Headers} ->
erlang:setelement(2, Reply, jiffy:decode(Body, [return_maps, copy_strings]));
_ ->
Reply
end;
@ -130,8 +133,13 @@ receiveTcpData(RecvState, Socket, Rn, RnRn, IsHeadMethod) ->
receive
{tcp, Socket, Data} ->
try agHttpProtocol:response(RecvState, Rn, RnRn, Data, IsHeadMethod) of
{done, #recvState{headers = Headers, body = Body}} ->
{ok, Headers, jiffy:decode(Body, [return_maps, copy_strings])};
{done, #recvState{statusCode = StatusCode, headers = Headers, body = Body}} ->
case Body of
<<>> ->
{ok, #{}, StatusCode, Headers};
_ ->
{ok, jiffy:decode(Body, [return_maps, copy_strings]), StatusCode, Headers}
end;
{ok, NewRecvState} ->
receiveTcpData(NewRecvState, Socket, Rn, RnRn, IsHeadMethod);
{error, Reason} ->
@ -157,8 +165,13 @@ receiveSslData(RecvState, Socket, Rn, RnRn, IsHeadMethod) ->
receive
{ssl, Socket, Data} ->
try agHttpProtocol:response(RecvState, Rn, RnRn, Data, IsHeadMethod) of
{done, #recvState{headers = Headers, body = Body}} ->
{ok, Headers, jiffy:decode(Body, [return_maps, copy_strings])};
{done, #recvState{statusCode = StatusCode, headers = Headers, body = Body}} ->
case Body of
<<>> ->
{ok, #{}, StatusCode, Headers};
_ ->
{ok, jiffy:decode(Body, [return_maps, copy_strings]), StatusCode, Headers}
end;
{ok, NewRecvState} ->
receiveSslData(NewRecvState, Socket, Rn, RnRn, IsHeadMethod);
{error, Reason} ->

+ 4
- 4
src/httpCli/agSslAgencyIns.erl Прегледај датотеку

@ -62,8 +62,8 @@ handleMsg({ssl, Socket, Data},
#srvState{serverName = ServerName, rn = Rn, rnrn = RnRn, socket = Socket} = SrvState,
#cliState{isHeadMethod = IsHeadMethod, backlogNum = BacklogNum, curInfo = CurInfo, requestsOut = RequestsOut, recvState = RecvState} = CliState) ->
try agHttpProtocol:response(RecvState, Rn, RnRn, Data, IsHeadMethod) of
{done, #recvState{headers = Headers, body = Body}} ->
agAgencyUtils:agencyReply(CurInfo, {ok, Headers, Body}),
{done, #recvState{statusCode = StatusCode, headers = Headers, body = Body}} ->
agAgencyUtils:agencyReply(CurInfo, {ok, Body, StatusCode, Headers}),
case agAgencyUtils:getQueue(RequestsOut + 1) of
undefined ->
{ok, SrvState, CliState#cliState{backlogNum = BacklogNum - 1, status = leisure, curInfo = undefined, recvState = undefined}};
@ -192,8 +192,8 @@ overReceiveSslData(#srvState{poolName = PoolName, serverName = ServerName, rn =
receive
{ssl, Socket, Data} ->
try agHttpProtocol:response(RecvState, Rn, RnRn, Data, IsHeadMethod) of
{done, #recvState{headers = Headers, body = Body}} ->
agAgencyUtils:agencyReply(CurInfo, {ok, Headers, Body}),
{done, #recvState{statusCode = StatusCode, headers = Headers, body = Body}} ->
agAgencyUtils:agencyReply(CurInfo, {ok, Body, StatusCode, Headers}),
case agAgencyUtils:getQueue(RequestsOut + 1) of
undefined ->
{ok, SrvState, CliState#cliState{backlogNum = BacklogNum - 1, status = leisure, curInfo = undefined, recvState = undefined}};

+ 4
- 4
src/httpCli/agTcpAgencyIns.erl Прегледај датотеку

@ -62,8 +62,8 @@ handleMsg({tcp, Socket, Data},
#srvState{serverName = ServerName, rn = Rn, rnrn = RnRn, socket = Socket} = SrvState,
#cliState{isHeadMethod = IsHeadMethod, backlogNum = BacklogNum, curInfo = CurInfo, requestsOut = RequestsOut, recvState = RecvState} = CliState) ->
try agHttpProtocol:response(RecvState, Rn, RnRn, Data, IsHeadMethod) of
{done, #recvState{headers = Headers, body = Body}} ->
agAgencyUtils:agencyReply(CurInfo, {ok, Headers, Body}),
{done, #recvState{statusCode = StatusCode, headers = Headers, body = Body}} ->
agAgencyUtils:agencyReply(CurInfo, {ok, Body, StatusCode, Headers}),
case agAgencyUtils:getQueue(RequestsOut + 1) of
undefined ->
{ok, SrvState, CliState#cliState{backlogNum = BacklogNum - 1, status = leisure, curInfo = undefined, recvState = undefined}};
@ -191,8 +191,8 @@ overReceiveTcpData(#srvState{poolName = PoolName, serverName = ServerName, rn =
receive
{tcp, Socket, Data} ->
try agHttpProtocol:response(RecvState, Rn, RnRn, Data, IsHeadMethod) of
{done, #recvState{headers = Headers, body = Body}} ->
agAgencyUtils:agencyReply(CurInfo, {ok, Headers, Body}),
{done, #recvState{statusCode = StatusCode, headers = Headers, body = Body}} ->
agAgencyUtils:agencyReply(CurInfo, {ok, Body, StatusCode, Headers}),
case agAgencyUtils:getQueue(RequestsOut + 1) of
undefined ->
{ok, SrvState, CliState#cliState{backlogNum = BacklogNum - 1, status = leisure, curInfo = undefined, recvState = undefined}};

+ 2
- 2
src/user_default.erl Прегледај датотеку

@ -20,10 +20,10 @@ tt(C, N) ->
%% /_api/database
test(0, StartTime) ->
agDbMgr:curDbList(tt),
agMiscFun:getDbTime(tt),
io:format("IMY******test over use time ~p~n", [erlang:system_time(millisecond) - StartTime]);
test(N, StartTime) ->
agDbMgr:curDbList(tt),
agMiscFun:getDbTime(tt),
test(N - 1, StartTime).
%% tt(C, N) ->

Loading…
Откажи
Сачувај