|
|
- %% beam cache 模块名
- -define(agBeamPool, agBeamPool).
- -define(agBeamAgency, agBeamAgency).
-
- %% 默认值定义
- -define(DEFAULT_BASE_URL, <<"http://127.0.0.1:8529">>).
- -define(USER_PASSWORD, <<"root:156736">>).
- -define(DEFAULT_BACKLOG_SIZE, 1024).
- -define(DEFAULT_INIT_OPTS, undefined).
- -define(DEFAULT_CONNECT_TIMEOUT, 5000).
- -define(DEFAULT_POOL_SIZE, 16).
- -define(DEFAULT_POOL_STRATEGY, random).
- -define(DEFAULT_POOL_OPTIONS, []).
- -define(DEFAULT_IS_RECONNECT, true).
- -define(DEFAULT_RECONNECT_MAX, 120000).
- -define(DEFAULT_RECONNECT_MIN, 500).
- -define(DEFAULT_TIMEOUT, 5000).
- -define(DEFAULT_BODY, undefined).
- -define(DEFAULT_HEADERS, []).
- -define(DEFAULT_PID, self()).
- -define(DEFAULT_PROTOCOL, tcp).
- -define(DEFAULT_PORTO(Protocol), 8529).
- %%-define(DEFAULT_PORTO(Protocol), case Protocol of tcp -> 80; _ -> 443 end).
- -define(DEFAULT_SOCKET_OPTS, [binary, {active, true}, {delay_send, true}, {nodelay, 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)).
-
- -define(WARN(Tag, Format, Data), agMiscUtils:warnMsg(Tag, Format, Data)).
-
- -define(miDoNetConnect, miDoNetConnect).
-
- -record(miAgHttpCliRet, {
- requestId :: requestId(),
- reply :: term()
- }).
-
- -record(request, {
- requestId :: requestId(),
- pid :: pid() | undefined,
- timeout :: timeout(),
- timestamp :: erlang:timestamp()
- }).
-
- -record(requestRet, {
- statusCode :: undefined | 100..505,
- contentLength :: undefined | non_neg_integer() | chunked,
- body :: undefined | binary()
- }).
-
- -record(recvState, {
- stage = header :: header | body | done, %% 一个请求收到tcp可能会有多个包 最多分三个阶接收
- contentLength :: undefined | non_neg_integer() | chunked,
- statusCode :: undefined | 100..505,
- reason :: undefined | binary(),
- headers :: undefined | [binary()],
- buffer = <<>> :: binary(),
- body = <<>> :: binary()
- }).
-
- -record(httpParam, {
- headers = [] :: [binary()],
- body = undefined :: undefined | binary(),
- pid = self() :: pid(),
- timeout = 1000 :: non_neg_integer()
- }).
-
- -record(reconnectState, {
- min :: non_neg_integer(),
- max :: non_neg_integer() | infinity,
- current :: non_neg_integer() | undefined
- }).
-
- -record(cliState, {
- requestsIn = 1 :: non_neg_integer(),
- requestsOut = 0 :: non_neg_integer(),
- status = leisure :: waiting | leisure,
- backlogNum = 0 :: integer(),
- backlogSize = 0 :: integer(),
- curInfo = undefined :: tuple(),
- recvState :: recvState() | undefined
- }).
-
- -record(poolOpts, {
- host :: host(),
- port :: 0..65535,
- hostname :: string(),
- protocol :: protocol(),
- poolSize ::binary(),
- userPassword :: binary()
- }).
-
- -record(binPatterns, {
- rn :: binary:cp(),
- rnrn :: binary:cp()
- }).
-
- -type binPatterns() :: #binPatterns {}.
- -type miAgHttpCliRet() :: #miAgHttpCliRet{}.
- -type request() :: #request{}.
- -type requestRet() :: #requestRet{}.
- -type recvState() :: #recvState{}.
- -type httpParam() :: #httpParam{}.
- -type cliState() :: #cliState{}.
- -type reconnectState() :: #reconnectState{}.
-
- -type poolName() :: atom().
- -type serverName() :: atom().
- -type protocol() :: ssl | tcp.
- -type method() :: binary().
- -type headers() :: [{iodata(), iodata()}].
- -type body() :: iodata() | undefined.
- -type path() :: binary().
- -type host() :: binary().
- -type poolSize() :: pos_integer().
- -type backlogSize() :: pos_integer() | infinity.
- -type requestId() :: {serverName(), reference()}.
- -type externalRequestId() :: term().
- -type response() :: {externalRequestId(), term()}.
- -type socket() :: inet:socket() | ssl:sslsocket().
- -type error() :: {error, term()}.
-
- -type poolCfg() ::
- {baseUrl, binary()} |
- {user, binary()} |
- {password, binary()} |
- {poolSize, poolSize()}.
-
- -type agencyOpt() ::
- {reconnect, boolean()} |
- {backlogSize, backlogSize()} |
- {reconnectTimeMin, pos_integer()} |
- {reconnectTimeMax, pos_integer()} |
- {socketOpts, [gen_tcp:connect_option(), ...]}.
-
- -type poolCfgs() :: [poolCfg()].
- -type poolOpts() :: #poolOpts{}.
- -type agencyOpts() :: [agencyOpt()].
-
- -record(dbUrl, {
- host :: host(),
- path :: path(),
- port :: 0..65535,
- hostname :: string(),
- protocol :: protocol(),
- poolName :: atom() %% 请求该URL用到的poolName
- }).
-
- -type dbUrl() :: #dbUrl{}.
-
|