This commit is contained in:
anlicheng 2025-12-03 22:51:55 +08:00
parent 23b0a5988b
commit 1989c48ca0
2 changed files with 10 additions and 8 deletions

View File

@ -13,7 +13,7 @@
-behaviour(gen_server).
%% API
-export([start_link/0]).
-export([start_link/1]).
%% gen_server callbacks
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
@ -35,10 +35,10 @@ forward(Pid, ReceiverPid, Ref, TargetIp, TargetPort, Request) ->
gen_server:cast(Pid, {forward, ReceiverPid, Ref, TargetIp, TargetPort, Request}).
%% @doc Spawns the server and registers the local name (unique)
-spec(start_link() ->
-spec(start_link(Args :: list()) ->
{ok, Pid :: pid()} | ignore | {error, Reason :: term()}).
start_link() ->
gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).
start_link(Args) when is_list(Args) ->
gen_server:start_link(?MODULE, [], []).
%%%===================================================================
%%% gen_server callbacks
@ -52,8 +52,7 @@ start_link() ->
init([]) ->
{ok, Sock} = gen_udp:open(0, [binary, {active, true}]),
%% ets来保存映射关系
Table = list_to_atom("udp_ets:" ++ erlang:unique_integer([monotonic, positive])),
Tid = ets:new(Table, [set, {read_concurrency, true}, {write_concurrency, true}, private]),
Tid = ets:new(random_table(), [set, {read_concurrency, true}, {write_concurrency, true}, private]),
{ok, #state{socket = Sock, tid = Tid}}.
@ -128,3 +127,6 @@ code_change(_OldVsn, State = #state{}, _Extra) ->
%%%===================================================================
%%% Internal functions
%%%===================================================================
random_table() ->
list_to_atom("udp_ets:" ++ integer_to_list(erlang:unique_integer([monotonic, positive]))).

View File

@ -8,8 +8,8 @@
]},
{dns_resolver_pool, [
{size, 200},
{max_overflow, 1000},
{size, 20},
{max_overflow, 100},
{worker_module, dns_resolver}
]}