【发布时间】:2020-02-21 08:35:36
【问题描述】:
我正在尝试输入节点数并为每个节点启动 genserver 进程;即每个GenServer.start_link(n)(其中n 是节点号)为每个进程启动一个单独的进程(PID)。
pids = Enum.map(1..totalnodes, fn n ->
{:ok, unit} = GenSerModule.start_link(n)
unit
end)
从该行返回 pid(#<12.2.2.1>、#<12.2.2.2> 等)。
现在我想在主管下启动节点。也就是说,我必须通过 Supervisor 的每个节点的 init 函数启动 genserver 进程并获取 PID。像这样的东西:(我知道这是错误的)
pids = Enum.map(1..totalNodes, fn n ->
{:ok, unit} = worker(GenServerModule, n)
unit
end)
Supervisor.init(nodeMap,[strategy: :one_for_one])
我想在这个函数中获取已启动子进程的 PID,我通过 Supervisor 启动子进程。我被困在这里了。
我该怎么做?
【问题讨论】:
标签: elixir erlang-otp erlang-supervisor