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 -*- %% -*- mode: erlang -*-
%% Unless you know what you are doing, DO NOT edit manually!! %% Unless you know what you are doing, DO NOT edit manually!!
{VSN, {VSN,
[{"4.4.5", [{<<"4\\.4\\.[1-5]">>,
[{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,[]}]}, {apply,{emqx_retainer_sup,ensure_worker_pool_started,[]}},
{"4.4.4", {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.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,[]}]},
{"4.4.0", {"4.4.0",
[{load_module,emqx_retainer,brutal_purge,soft_purge,[]}, [{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer_cli,brutal_purge,soft_purge,[]}, {apply,{emqx_retainer_sup,ensure_worker_pool_started,[]}},
{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,[]}
]},
{<<".*">>,[]}], {<<".*">>,[]}],
[{"4.4.5", [{<<"4\\.4\\.[1-5]">>,
[{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,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,[]}]},
{"4.4.0", {"4.4.0",
[{load_module,emqx_retainer,brutal_purge,soft_purge,[]}, [{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer_cli,brutal_purge,soft_purge,[]}, {load_module,emqx_retainer,brutal_purge,soft_purge,[]},
{load_module,emqx_retainer_sup,brutal_purge,soft_purge,[]}]}, {load_module,emqx_retainer_cli,brutal_purge,soft_purge,[]}
]},
{<<".*">>,[]}]}. {<<".*">>,[]}]}.

View File

@ -20,12 +20,23 @@
-include("emqx_retainer.hrl"). -include("emqx_retainer.hrl").
-export([start_link/1]). -export([ start_link/1
, ensure_worker_pool_started/0
, worker_pool_spec/0
]).
-export([init/1]). -export([init/1]).
start_link(Env) -> start_link(Env) ->
supervisor:start_link({local, ?MODULE}, ?MODULE, [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]) -> init([Env]) ->
Retainer = #{ Retainer = #{
id => retainer, id => retainer,
@ -35,19 +46,22 @@ init([Env]) ->
type => worker, type => worker,
modules => [emqx_retainer] 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, id => ?POOL,
start => {emqx_pool_sup, start_link, [?POOL, random, {emqx_pool, start_link, []}]}, start => {emqx_pool_sup, start_link, [?POOL, random, {emqx_pool, start_link, []}]},
restart => permanent, restart => permanent,
shutdown => 5000, shutdown => 5000,
type => supervisor, type => supervisor,
modules => [emqx_pool_sup] 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). -ifdef(EMQX_ENTERPRISE).
@ -69,3 +83,4 @@ is_managed_by_modules() ->
false. false.
-endif. -endif.