diff options
| author | Michael Klishin <michael@clojurewerkz.org> | 2019-03-22 20:24:59 +0300 |
|---|---|---|
| committer | Michael Klishin <michael@clojurewerkz.org> | 2019-03-22 20:24:59 +0300 |
| commit | 6e54d77439e2466ea41f0cbf2fc9600f02467157 (patch) | |
| tree | 55e3d3de1a45a308fc08d4d811637e9c0857231a /src | |
| parent | 1b87e590a232b878fa1869aff26eef675093a9bc (diff) | |
| parent | 40a8ca2b7a310bf6e6ea89ae35c6319000a2d5d9 (diff) | |
| download | rabbitmq-server-git-6e54d77439e2466ea41f0cbf2fc9600f02467157.tar.gz | |
Merge branch 'masaki-furuta-toggle_disk_monitor'
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_disk_monitor.erl | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/rabbit_disk_monitor.erl b/src/rabbit_disk_monitor.erl index 2441587bce..4e5e3d2a28 100644 --- a/src/rabbit_disk_monitor.erl +++ b/src/rabbit_disk_monitor.erl @@ -39,7 +39,7 @@ -export([get_disk_free_limit/0, set_disk_free_limit/1, get_min_check_interval/0, set_min_check_interval/1, get_max_check_interval/0, set_max_check_interval/1, - get_disk_free/0]). + get_disk_free/0, set_enabled/1]). -define(SERVER, ?MODULE). -define(DEFAULT_MIN_DISK_CHECK_INTERVAL, 100). @@ -112,10 +112,14 @@ set_max_check_interval(Interval) -> gen_server:call(?MODULE, {set_max_check_interval, Interval}, infinity). -spec get_disk_free() -> (integer() | 'unknown'). +-spec set_enabled(string()) -> 'ok'. get_disk_free() -> gen_server:call(?MODULE, get_disk_free, infinity). +set_enabled(Enabled) -> + gen_server:call(?MODULE, {set_enabled, Enabled}, infinity). + %%---------------------------------------------------------------------------- %% gen_server callbacks %%---------------------------------------------------------------------------- @@ -165,6 +169,15 @@ handle_call({set_max_check_interval, MaxInterval}, _From, State) -> handle_call(get_disk_free, _From, State = #state { actual = Actual }) -> {reply, Actual, State}; +handle_call({set_enabled, _Enabled = true}, _From, State) -> + start_timer(set_disk_limits(State, State#state.limit)), + rabbit_log:info("Free disk space monitor was enabled"), + {reply, ok, State#state{enabled = true}}; +handle_call({set_enabled, _Enabled = false}, _From, State) -> + erlang:cancel_timer(State#state.timer), + rabbit_log:info("Free disk space monitor was manually disabled"), + {reply, ok, State#state{enabled = false}}; + handle_call(_Request, _From, State) -> {noreply, State}. |
