Add configuration for sys_heartbeat

This commit is contained in:
terry-xiaoyu 2019-07-18 18:40:49 +08:00 committed by Shawn
parent 4603ea17ef
commit 86333802b9
3 changed files with 20 additions and 1 deletions

View File

@ -1878,6 +1878,14 @@ plugins.expand_plugins_dir = {{ platform_plugins_dir }}/
## Default: 1m, 1 minute ## Default: 1m, 1 minute
broker.sys_interval = 1m broker.sys_interval = 1m
## System heartbeat interval of publishing following heart beat message:
## - "$SYS/brokers/<node>/uptime"
## - "$SYS/brokers/<node>/datetime"
##
## Value: Duration
## Default: 30s
broker.sys_heartbeat = 30s
## Enable global session registry. ## Enable global session registry.
## ##
## Value: on | off ## Value: on | off

View File

@ -1807,6 +1807,11 @@ end}.
{default, "1m"} {default, "1m"}
]}. ]}.
{mapping, "broker.sys_heartbeat", "emqx.broker_sys_heartbeat", [
{datatype, {duration, ms}},
{default, "30s"}
]}.
{mapping, "broker.enable_session_registry", "emqx.enable_session_registry", [ {mapping, "broker.enable_session_registry", "emqx.enable_session_registry", [
{default, on}, {default, on},
{datatype, flag} {datatype, flag}

View File

@ -28,6 +28,7 @@
, datetime/0 , datetime/0
, sysdescr/0 , sysdescr/0
, sys_interval/0 , sys_interval/0
, sys_heatbeat_interval/0
]). ]).
-export([info/0]). -export([info/0]).
@ -92,6 +93,11 @@ datetime() ->
sys_interval() -> sys_interval() ->
application:get_env(?APP, broker_sys_interval, 60000). application:get_env(?APP, broker_sys_interval, 60000).
%% @doc Get sys heatbeat interval
-spec(sys_heatbeat_interval() -> pos_integer()).
sys_heatbeat_interval() ->
application:get_env(?APP, sys_heartbeat, 30000).
%% @doc Get sys info %% @doc Get sys info
-spec(info() -> list(tuple())). -spec(info() -> list(tuple())).
info() -> info() ->
@ -111,7 +117,7 @@ init([]) ->
{ok, heartbeat(tick(State))}. {ok, heartbeat(tick(State))}.
heartbeat(State) -> heartbeat(State) ->
State#state{heartbeat = start_timer(timer:seconds(1), heartbeat)}. State#state{heartbeat = start_timer(sys_heatbeat_interval(), heartbeat)}.
tick(State) -> tick(State) ->
State#state{ticker = start_timer(sys_interval(), tick)}. State#state{ticker = start_timer(sys_interval(), tick)}.