summaryrefslogtreecommitdiff
path: root/src/rabbit_event.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/rabbit_event.erl')
-rw-r--r--src/rabbit_event.erl28
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()}).