Revert "Switch to classic OTP supervisor for two modules"
This reverts commit 1bead422a9.
This commit is contained in:
parent
abb0ab5bd9
commit
1daae3064d
|
|
@ -6,18 +6,18 @@
|
|||
%%
|
||||
|
||||
-module(rabbit_mqtt_retainer_sup).
|
||||
-behaviour(supervisor).
|
||||
-behaviour(supervisor2).
|
||||
|
||||
-export([start_link/1, init/1, start_child/2,start_child/1, child_for_vhost/1,
|
||||
delete_child/1]).
|
||||
|
||||
-define(ENCODING, utf8).
|
||||
|
||||
-spec start_child(binary()) -> supervisor:startchild_ret().
|
||||
-spec start_child(term(), binary()) -> supervisor:startchild_ret().
|
||||
-spec start_child(binary()) -> supervisor2:startchild_ret().
|
||||
-spec start_child(term(), binary()) -> supervisor2:startchild_ret().
|
||||
|
||||
start_link(SupName) ->
|
||||
supervisor:start_link(SupName, ?MODULE, []).
|
||||
supervisor2:start_link(SupName, ?MODULE, []).
|
||||
|
||||
child_for_vhost(VHost) when is_binary(VHost) ->
|
||||
case rabbit_mqtt_retainer_sup:start_child(VHost) of
|
||||
|
|
@ -29,44 +29,28 @@ start_child(VHost) when is_binary(VHost) ->
|
|||
start_child(rabbit_mqtt_retainer:store_module(), VHost).
|
||||
|
||||
start_child(RetainStoreMod, VHost) ->
|
||||
supervisor:start_child(?MODULE,
|
||||
#{
|
||||
id => vhost_to_atom(VHost),
|
||||
start => {rabbit_mqtt_retainer, start_link, [RetainStoreMod, VHost]},
|
||||
restart => permanent,
|
||||
shutdown => 60,
|
||||
type => worker,
|
||||
modules => [rabbit_mqtt_retainer]
|
||||
}).
|
||||
supervisor2:start_child(?MODULE,
|
||||
|
||||
{vhost_to_atom(VHost),
|
||||
{rabbit_mqtt_retainer, start_link, [RetainStoreMod, VHost]},
|
||||
permanent, 60, worker, [rabbit_mqtt_retainer]}).
|
||||
|
||||
delete_child(VHost) ->
|
||||
Id = vhost_to_atom(VHost),
|
||||
ok = supervisor:terminate_child(?MODULE, Id),
|
||||
ok = supervisor:delete_child(?MODULE, Id).
|
||||
ok = supervisor2:terminate_child(?MODULE, Id),
|
||||
ok = supervisor2:delete_child(?MODULE, Id).
|
||||
|
||||
init([]) ->
|
||||
Mod = rabbit_mqtt_retainer:store_module(),
|
||||
rabbit_log:info("MQTT retained message store: ~p~n", [Mod]),
|
||||
Flags = #{
|
||||
strategy => one_for_all,
|
||||
period => 5,
|
||||
intensity => 5
|
||||
},
|
||||
{ok, {Flags, child_specs(Mod, rabbit_vhost:list_names())}}.
|
||||
rabbit_log:info("MQTT retained message store: ~p~n",
|
||||
[Mod]),
|
||||
{ok, {{one_for_one, 5, 5}, child_specs(Mod, rabbit_vhost:list_names())}}.
|
||||
|
||||
child_specs(Mod, VHosts) ->
|
||||
%% see start_child/2
|
||||
[child_spec(V, Mod) || V <- VHosts].
|
||||
|
||||
child_spec(VHost, Mod) ->
|
||||
#{
|
||||
id => vhost_to_atom(VHost),
|
||||
start => {rabbit_mqtt_retainer, start_link, [Mod, VHost]},
|
||||
restart => permanent,
|
||||
shutdown => infinity,
|
||||
type => worker,
|
||||
modules => [rabbit_mqtt_retainer]
|
||||
}.
|
||||
[{vhost_to_atom(V),
|
||||
{rabbit_mqtt_retainer, start_link, [Mod, V]},
|
||||
permanent, infinity, worker, [rabbit_mqtt_retainer]} || V <- VHosts].
|
||||
|
||||
vhost_to_atom(VHost) ->
|
||||
%% we'd like to avoid any conversion here because
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
%%
|
||||
|
||||
-module(rabbit_mqtt_sup).
|
||||
-behaviour(supervisor).
|
||||
-behaviour(supervisor2).
|
||||
|
||||
-include_lib("rabbit_common/include/rabbit.hrl").
|
||||
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
-define(TLS_PROTOCOL, 'mqtt/ssl').
|
||||
|
||||
start_link(Listeners, []) ->
|
||||
supervisor:start_link({local, ?MODULE}, ?MODULE, [Listeners]).
|
||||
supervisor2:start_link({local, ?MODULE}, ?MODULE, [Listeners]).
|
||||
|
||||
init([{Listeners, SslListeners0}]) ->
|
||||
NumTcpAcceptors = application:get_env(rabbitmq_mqtt, num_tcp_acceptors, 10),
|
||||
|
|
@ -31,21 +31,10 @@ init([{Listeners, SslListeners0}]) ->
|
|||
danger -> []
|
||||
end}
|
||||
end,
|
||||
Flags = #{
|
||||
strategy => one_for_all,
|
||||
period => 10,
|
||||
intensity => 10
|
||||
},
|
||||
RetainerSpec = #{
|
||||
id => rabbit_mqtt_retainer_sup,
|
||||
start => {rabbit_mqtt_retainer_sup, start_link, [{local, rabbit_mqtt_retainer_sup}]},
|
||||
restart => transient,
|
||||
shutdown => ?SUPERVISOR_WAIT,
|
||||
type => supervisor,
|
||||
modules => [rabbit_mqtt_retainer_sup]
|
||||
},
|
||||
{ok, {Flags,
|
||||
[RetainerSpec |
|
||||
{ok, {{one_for_all, 10, 10},
|
||||
[{rabbit_mqtt_retainer_sup,
|
||||
{rabbit_mqtt_retainer_sup, start_link, [{local, rabbit_mqtt_retainer_sup}]},
|
||||
transient, ?SUPERVISOR_WAIT, supervisor, [rabbit_mqtt_retainer_sup]} |
|
||||
listener_specs(fun tcp_listener_spec/1,
|
||||
[SocketOpts, NumTcpAcceptors], Listeners) ++
|
||||
listener_specs(fun ssl_listener_spec/1,
|
||||
|
|
|
|||
Loading…
Reference in New Issue