ebb_worker_supv.erl 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. -module(ebb_worker_supv).
  2. -behaviour(supervisor).
  3. %% API
  4. -export([start_link/4]).
  5. %% Supervisor callbacks
  6. -export([init/1]).
  7. %%====================================================================
  8. %% API functions
  9. %%====================================================================
  10. %%--------------------------------------------------------------------
  11. %% Function: start_link() -> {ok,Pid} | ignore | {error,Error}
  12. %% Description: Starts the supervisor
  13. %%--------------------------------------------------------------------
  14. start_link(Mode, Func, Args, Receiver) ->
  15. supervisor:start_link(?MODULE, {Mode, Func, Args, Receiver}).
  16. %%====================================================================
  17. %% Supervisor callbacks
  18. %%====================================================================
  19. %%--------------------------------------------------------------------
  20. %% Func: init(Args) -> {ok, {SupFlags, [ChildSpec]}} |
  21. %% ignore |
  22. %% {error, Reason}
  23. %% Description: Whenever a supervisor is started using
  24. %% supervisor:start_link/[2,3], this function is called by the new process
  25. %% to find out about restart strategy, maximum restart frequency and child
  26. %% specifications.
  27. %%--------------------------------------------------------------------
  28. init({local, Func, Args, Receiver}) ->
  29. Worker = {'worker',
  30. {ebb_worker, start_link, [Func, Args, Receiver]},
  31. transient, 2000, worker, [ebb_worker]},
  32. {ok, {{one_for_one, 5, 1}, [Worker]}};
  33. init({distributed, Func, Args, Receiver}) ->
  34. Worker = {'worker',
  35. {ebb_work_manager, start_work, [Func, Args, Receiver]},
  36. temporary, 2000, worker, [ebb_work_manager]},
  37. {ok, {{one_for_one, 5, 1}, [Worker]}}.
  38. %%====================================================================
  39. %% Internal functions
  40. %%====================================================================