summaryrefslogtreecommitdiff
path: root/merge/src/merge_dist_sup.erl
diff options
context:
space:
mode:
Diffstat (limited to 'merge/src/merge_dist_sup.erl')
-rw-r--r--merge/src/merge_dist_sup.erl30
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]}.