diff options
-rw-r--r-- | merge/src/merge_dist.erl | 8 | ||||
-rw-r--r-- | merge/src/merge_dist_sup.erl | 30 |
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]}. |