summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--merge/src/merge_dist.erl8
-rw-r--r--merge/src/merge_dist_sup.erl30
2 files changed, 17 insertions, 21 deletions
diff --git a/merge/src/merge_dist.erl b/merge/src/merge_dist.erl
index 25e13ec..6e9b879 100644
--- a/merge/src/merge_dist.erl
+++ b/merge/src/merge_dist.erl
@@ -10,6 +10,7 @@
-record(state, {
timer :: reference(),
+ node_name :: string(),
node_address :: string(),
sth_timestamp :: non_neg_integer()
}).
@@ -17,11 +18,12 @@
start_link(Args) ->
gen_server:start_link(?MODULE, Args, []).
-init(Node) ->
- lager:info("~p:~p: starting", [?MODULE, Node]),
+init([Name, Address]) ->
+ lager:info("~p:~p: starting (~p)", [?MODULE, Name, Address]),
Timer = erlang:start_timer(1000, self(), dist),
{ok, #state{timer = Timer,
- node_address = Node,
+ node_name = Name,
+ node_address = Address,
sth_timestamp = 0}}.
handle_call(stop, _From, State) ->
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]}.