diff options
Diffstat (limited to 'src/rabbit_event.erl')
-rw-r--r-- | src/rabbit_event.erl | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/src/rabbit_event.erl b/src/rabbit_event.erl index f4ee279b..887e4a1f 100644 --- a/src/rabbit_event.erl +++ b/src/rabbit_event.erl @@ -26,7 +26,7 @@ %%---------------------------------------------------------------------------- --record(state, {level, timer}). +-record(state, {level, interval, timer}). %%---------------------------------------------------------------------------- @@ -49,6 +49,7 @@ -opaque(state() :: #state { level :: level(), + interval :: integer(), timer :: atom() }). @@ -95,12 +96,14 @@ start_link() -> init_stats_timer() -> {ok, StatsLevel} = application:get_env(rabbit, collect_statistics), - #state{level = StatsLevel, timer = undefined}. + {ok, Interval} = application:get_env(rabbit, collect_statistics_interval), + #state{level = StatsLevel, interval = Interval, timer = undefined}. ensure_stats_timer(State = #state{level = none}, _Pid, _Msg) -> State; -ensure_stats_timer(State = #state{timer = undefined}, Pid, Msg) -> - TRef = erlang:send_after(?STATS_INTERVAL, Pid, Msg), +ensure_stats_timer(State = #state{interval = Interval, + timer = undefined}, Pid, Msg) -> + TRef = erlang:send_after(Interval, Pid, Msg), State#state{timer = TRef}; ensure_stats_timer(State, _Pid, _Msg) -> State. @@ -129,15 +132,8 @@ notify_if(true, Type, Props) -> notify(Type, Props); notify_if(false, _Type, _Props) -> ok. notify(Type, Props) -> - try - %% TODO: switch to os:timestamp() when we drop support for - %% Erlang/OTP < R13B01 - gen_event:notify(rabbit_event, #event{type = Type, - props = Props, - timestamp = now()}) - catch error:badarg -> - %% badarg means rabbit_event is no longer registered. We never - %% unregister it so the great likelihood is that we're shutting - %% down the broker but some events were backed up. Ignore it. - ok - end. + %% TODO: switch to os:timestamp() when we drop support for + %% Erlang/OTP < R13B01 + gen_event:notify(rabbit_event, #event{type = Type, + props = Props, + timestamp = now()}). |