Advertisement
Guest User

Untitled

a guest
Oct 24th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. defmodule DynamicProcesses.Examples do
  2. alias DynamicProcesses.{SomeSupervisor, SomeWorker}
  3.  
  4. import Supervisor.Spec
  5.  
  6. def add_single_supervisor(id \\ "1") do
  7. {:ok, supervisor_spec} = build_supervisor_spec(SomeSupervisor, [], id)
  8. Supervisor.start_child(DynamicProcesses.Supervisor, supervisor_spec)
  9. end
  10.  
  11. def add_supervisor_with_workers do
  12. {:ok, supervisor_pid} = add_single_supervisor
  13. {:ok, worker_spec1} = build_worker_spec(SomeWorker, [], "1")
  14. {:ok, worker_spec2} = build_worker_spec(SomeWorker, [], "2")
  15. Supervisor.start_child(supervisor_pid, worker_spec1)
  16. Supervisor.start_child(supervisor_pid, worker_spec2)
  17. end
  18.  
  19. defp build_supervisor_spec(module, args, id) do
  20. supervisor_spec = supervisor(module, args, [id: "supervisor" <> id])
  21. {:ok, supervisor_spec}
  22. end
  23.  
  24. defp build_worker_spec(module, args, id) do
  25. worker_spec = worker(module, args, [id: "worker" <> id])
  26. {:ok, worker_spec}
  27. end
  28. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement