member_sup.erl 590 B

123456789101112131415161718192021222324
  1. -module(member_sup).
  2. -behaviour(supervisor).
  3. -export([
  4. init/1,
  5. new_member/1,
  6. start_link/0
  7. ]).
  8. start_link() ->
  9. supervisor:start_link({local, ?MODULE}, ?MODULE, []).
  10. init(Args) ->
  11. Worker = {member, {member, start_link, Args},
  12. temporary, % never restart workers
  13. brutal_kill, worker, [member]},
  14. Specs = [Worker],
  15. Restart = {simple_one_for_one, 1, 1},
  16. {ok, {Restart, Specs}}.
  17. new_member(Delay) ->
  18. Config = [{start_up_delay, Delay}],
  19. supervisor:start_child(?MODULE, [Config]).