chore: start emqx_retainer_worker_pool when relup

This commit is contained in:
Shawn 2023-03-21 18:47:28 +08:00
parent 0eee57e4f7
commit 0b2660f64d
2 changed files with 39 additions and 42 deletions

View File

@ -1,43 +1,25 @@
%% -*- mode: erlang -*-
%% Unless you know what you are doing, DO NOT edit manually!!
{VSN,
[{"4.4.5",
[{<<"4\\.4\\.[1-5]">>,
[{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer,brutal_purge,soft_purge,[]}]},
{"4.4.4",
[{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer,brutal_purge,soft_purge,[]}]},
{"4.4.3",
[{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer,brutal_purge,soft_purge,[]}]},
{"4.4.2",
[{load_module,emqx_retainer,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]}]},
{"4.4.1",
[{load_module,emqx_retainer,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]}]},
{apply,{emqx_retainer_sup,ensure_worker_pool_started,[]}},
{load_module,emqx_retainer,brutal_purge,soft_purge,[]}
]},
{"4.4.0",
[{load_module,emqx_retainer,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer_cli,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]}]},
[{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]},
{apply,{emqx_retainer_sup,ensure_worker_pool_started,[]}},
{load_module,emqx_retainer,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer_cli,brutal_purge,soft_purge,[]}
]},
{<<".*">>,[]}],
[{"4.4.5",
[{<<"4\\.4\\.[1-5]">>,
[{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer,brutal_purge,soft_purge,[]}]},
{"4.4.4",
[{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer,brutal_purge,soft_purge,[]}]},
{"4.4.3",
[{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer,brutal_purge,soft_purge,[]}]},
{"4.4.2",
[{load_module,emqx_retainer,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]}]},
{"4.4.1",
[{load_module,emqx_retainer,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]}]},
{load_module,emqx_retainer,brutal_purge,soft_purge,[]}
]},
{"4.4.0",
[{load_module,emqx_retainer,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer_cli,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]}]},
[{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer_cli,brutal_purge,soft_purge,[]}
]},
{<<".*">>,[]}]}.

View File

@ -20,12 +20,23 @@
-include("emqx_retainer.hrl").
-export([start_link/1]).
-export([ start_link/1
, ensure_worker_pool_started/0
, worker_pool_spec/0
]).
-export([init/1]).
start_link(Env) ->
supervisor:start_link({local, ?MODULE}, ?MODULE, [Env]).
ensure_worker_pool_started() ->
try
supervisor:start_child(?MODULE, worker_pool_spec())
catch
_:_ -> ignore
end.
init([Env]) ->
Retainer = #{
id => retainer,
@ -35,19 +46,22 @@ init([Env]) ->
type => worker,
modules => [emqx_retainer]
},
WorkerPool = #{
WorkerPool = worker_pool_spec(),
ChildSpecs = case is_managed_by_modules() of
false -> [Retainer, WorkerPool];
true -> []
end,
{ok, {{one_for_one, 10, 3600}, ChildSpecs}}.
worker_pool_spec() ->
#{
id => ?POOL,
start => {emqx_pool_sup, start_link, [?POOL, random, {emqx_pool, start_link, []}]},
restart => permanent,
shutdown => 5000,
type => supervisor,
modules => [emqx_pool_sup]
},
ChildSpecs = case is_managed_by_modules() of
false -> [Retainer, WorkerPool];
true -> [WorkerPool]
end,
{ok, {{one_for_one, 10, 3600}, ChildSpecs}}.
}.
-ifdef(EMQX_ENTERPRISE).
@ -69,3 +83,4 @@ is_managed_by_modules() ->
false.
-endif.