From 0e635b850809c843295b822551ef902ffeb19142 Mon Sep 17 00:00:00 2001 From: Linus Nordberg Date: Wed, 8 Feb 2017 11:55:27 +0100 Subject: Make merge dist workers one_for_one. Look like dist backup, in preparation for reloadable config wrt frontend nodes. Also pass node names as well as addresses. --- merge/src/merge_dist_sup.erl | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) (limited to 'merge/src/merge_dist_sup.erl') 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]}. -- cgit v1.1