router_pool/1

This commit is contained in:
Feng 2016-02-16 03:03:16 +08:00
parent 757d1f5fc5
commit 955d8e37fd
1 changed files with 8 additions and 1 deletions

View File

@ -47,8 +47,9 @@ init([Env]) ->
%% Router Pool Sup %% Router Pool Sup
RouterMFA = {emqttd_router, start_link, [fun setstats/1, Env]}, RouterMFA = {emqttd_router, start_link, [fun setstats/1, Env]},
%% Pool_size / 2 %% Pool_size / 2
RouterSup = emqttd_pool_sup:spec(router_pool, [router, hash, 1 + (pool_size(Env) div 2), RouterMFA]), RouterSup = emqttd_pool_sup:spec(router_pool, [router, hash, router_pool(Env), RouterMFA]),
%% PubSub Pool Sup %% PubSub Pool Sup
PubSubMFA = {emqttd_pubsub, start_link, [fun setstats/1, Env]}, PubSubMFA = {emqttd_pubsub, start_link, [fun setstats/1, Env]},
@ -71,6 +72,12 @@ ensure_tab(Tab, Opts) ->
_ -> ok _ -> ok
end. end.
router_pool(Env) ->
case pool_size(Env) div 2 of
0 -> 1;
I -> I
end.
pool_size(Env) -> pool_size(Env) ->
Schedulers = erlang:system_info(schedulers), Schedulers = erlang:system_info(schedulers),
proplists:get_value(pool_size, Env, Schedulers). proplists:get_value(pool_size, Env, Schedulers).