refactor: statsd supervisor API no need to return error
Also to make dialyzer happy
This commit is contained in:
parent
2bfc5b1241
commit
071b03b29c
|
@ -308,7 +308,7 @@ download_trace_log(get, #{bindings := #{name := Name}}) ->
|
||||||
%% TODO use file replace file_binary.(delete file after send is not ready now).
|
%% TODO use file replace file_binary.(delete file after send is not ready now).
|
||||||
{ok, Binary} = file:read_file(ZipFile),
|
{ok, Binary} = file:read_file(ZipFile),
|
||||||
ZipName = filename:basename(ZipFile),
|
ZipName = filename:basename(ZipFile),
|
||||||
file:delete(ZipFile),
|
_ = file:delete(ZipFile),
|
||||||
Headers = #{
|
Headers = #{
|
||||||
<<"content-type">> => <<"application/x-zip">>,
|
<<"content-type">> => <<"application/x-zip">>,
|
||||||
<<"content-disposition">> => iolist_to_binary("attachment; filename=" ++ ZipName)
|
<<"content-disposition">> => iolist_to_binary("attachment; filename=" ++ ZipName)
|
||||||
|
|
|
@ -61,10 +61,10 @@ statsd(put, #{body := Body}) ->
|
||||||
{ok, #{raw_config := NewConfig, config := Config}} ->
|
{ok, #{raw_config := NewConfig, config := Config}} ->
|
||||||
case maps:get(<<"enable">>, Body) of
|
case maps:get(<<"enable">>, Body) of
|
||||||
true ->
|
true ->
|
||||||
_ = emqx_statsd_sup:stop_child(?APP),
|
ok = emqx_statsd_sup:ensure_child_stopped(?APP),
|
||||||
_ = emqx_statsd_sup:start_child(?APP, maps:get(config, Config));
|
ok = emqx_statsd_sup:ensure_child_started(?APP, maps:get(config, Config));
|
||||||
false ->
|
false ->
|
||||||
_ = emqx_statsd_sup:stop_child(?APP)
|
ok = emqx_statsd_sup:ensure_child_stopped(?APP)
|
||||||
end,
|
end,
|
||||||
{200, NewConfig};
|
{200, NewConfig};
|
||||||
{error, Reason} ->
|
{error, Reason} ->
|
||||||
|
|
|
@ -34,7 +34,7 @@ stop(_) ->
|
||||||
maybe_enable_statsd() ->
|
maybe_enable_statsd() ->
|
||||||
case emqx_conf:get([statsd, enable], false) of
|
case emqx_conf:get([statsd, enable], false) of
|
||||||
true ->
|
true ->
|
||||||
emqx_statsd_sup:start_child(?APP, emqx_conf:get([statsd], #{}));
|
emqx_statsd_sup:ensure_child_started(?APP, emqx_conf:get([statsd], #{}));
|
||||||
false ->
|
false ->
|
||||||
ok
|
ok
|
||||||
end.
|
end.
|
||||||
|
|
|
@ -8,9 +8,9 @@
|
||||||
-behaviour(supervisor).
|
-behaviour(supervisor).
|
||||||
|
|
||||||
-export([ start_link/0
|
-export([ start_link/0
|
||||||
, start_child/1
|
, ensure_child_started/1
|
||||||
, start_child/2
|
, ensure_child_started/2
|
||||||
, stop_child/1
|
, ensure_child_stopped/1
|
||||||
]).
|
]).
|
||||||
|
|
||||||
-export([init/1]).
|
-export([init/1]).
|
||||||
|
@ -26,19 +26,24 @@
|
||||||
start_link() ->
|
start_link() ->
|
||||||
supervisor:start_link({local, ?MODULE}, ?MODULE, []).
|
supervisor:start_link({local, ?MODULE}, ?MODULE, []).
|
||||||
|
|
||||||
-spec start_child(supervisor:child_spec()) -> ok.
|
-spec ensure_child_started(supervisor:child_spec()) -> ok.
|
||||||
start_child(ChildSpec) when is_map(ChildSpec) ->
|
ensure_child_started(ChildSpec) when is_map(ChildSpec) ->
|
||||||
assert_started(supervisor:start_child(?MODULE, ChildSpec)).
|
assert_started(supervisor:start_child(?MODULE, ChildSpec)).
|
||||||
|
|
||||||
-spec start_child(atom(), map()) -> ok.
|
-spec ensure_child_started(atom(), map()) -> ok.
|
||||||
start_child(Mod, Opts) when is_atom(Mod) andalso is_map(Opts) ->
|
ensure_child_started(Mod, Opts) when is_atom(Mod) andalso is_map(Opts) ->
|
||||||
assert_started(supervisor:start_child(?MODULE, ?CHILD(Mod, Opts))).
|
assert_started(supervisor:start_child(?MODULE, ?CHILD(Mod, Opts))).
|
||||||
|
|
||||||
-spec(stop_child(any()) -> ok | {error, term()}).
|
%% @doc Stop the child worker process.
|
||||||
stop_child(ChildId) ->
|
-spec ensure_child_stopped(any()) -> ok.
|
||||||
|
ensure_child_stopped(ChildId) ->
|
||||||
case supervisor:terminate_child(?MODULE, ChildId) of
|
case supervisor:terminate_child(?MODULE, ChildId) of
|
||||||
ok -> supervisor:delete_child(?MODULE, ChildId);
|
ok ->
|
||||||
Error -> Error
|
%% with terminate_child/2 returned 'ok', it's not possible
|
||||||
|
%% for supervisor:delete_child/2 to return {error, Reason}
|
||||||
|
ok = supervisor:delete_child(?MODULE, ChildId);
|
||||||
|
{error, not_found} ->
|
||||||
|
ok
|
||||||
end.
|
end.
|
||||||
|
|
||||||
init([]) ->
|
init([]) ->
|
||||||
|
|
Loading…
Reference in New Issue