Я пытаюсь ввести количество узлов и запустить процессы genserver для каждого из узлов;то есть каждый GenServer.start_link(n)
(где n
- номер узла) запускает отдельный процесс (PID) для каждого процесса.
pids = Enum.map(1..totalnodes, fn n ->
{:ok, unit} = GenSerModule.start_link(n)
unit
end)
Пиды возвращаются из этой строки (#<12.2.2.1>
, #<12.2.2.2>
и т. д.).
Теперь я хочу запустить узлы под супервизором. То есть я должен запустить процессы genserver через функцию инициализации Supervisor для каждого узла и получить PID. Примерно так: (я знаю, что это неправильно)
pids = Enum.map(1..totalNodes, fn n ->
{:ok, unit} = worker(GenServerModule, n)
unit
end)
Supervisor.init(nodeMap,[strategy: :one_for_one])
Я хочу получить PID запущенных дочерних процессов в этой функции, где я запускаю дочерние процессы через Supervisor. Я застрял здесь.
Как мне это сделать?