diff options
Diffstat (limited to 'merge/src/merge_dist_sup.erl')
-rw-r--r-- | merge/src/merge_dist_sup.erl | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/merge/src/merge_dist_sup.erl b/merge/src/merge_dist_sup.erl index 050ddc5..06bc384 100644 --- a/merge/src/merge_dist_sup.erl +++ b/merge/src/merge_dist_sup.erl @@ -7,23 +7,17 @@ -export([start_link/1, init/1]). start_link([]) -> - {ok, Nodes} = application:get_env(plop, frontend_nodes), - lager:info("starting merge dist for frontend nodes: ~p", [Nodes]), - {ok, Pid} = supervisor:start_link({local, ?MODULE}, ?MODULE, []), - lists:map(fun(Node) -> - lager:debug("starting dist worker: ~p", [Node]), - {ok, Child} = - supervisor:start_child(?MODULE, [Node]), - Child - end, Nodes), - {ok, Pid}. + supervisor:start_link({local, ?MODULE}, ?MODULE, []). init(_Args) -> - {ok, - {{simple_one_for_one, 3, 10}, - [ - {ignored, - {merge_dist, start_link, []}, - permanent, 10000, worker, - [merge_dist]} - ]}}. + {ok, {{one_for_one, 3, 10}, children()}}. + +children() -> + {ok, Nodes} = plopconfig:get_env(frontend_nodes), + {Names, _Addrs} = lists:unzip(Nodes), + lager:info("Starting merge dist for frontend nodes: ~p", [Names]), + [child_spec(Node) || Node <- Nodes]. + +child_spec({Name, Address}) -> + {Name, {merge_dist, start_link, [[Name, Address]]}, + permanent, 10000, worker, [merge_dist]}. |