kno*_*ito 2 erlang elixir erlang-otp
我是elixir的初学者,然后我尝试(灵感来自编程elixir书的例子)创建一个可以有几个相同类型的孩子的主管.我收到了错误
{:error, {{:EXIT, {{:badmatch, {:error, {:already_started,#PID<0.122.0>}}},...
Run Code Online (Sandbox Code Playgroud)
也许我误解了主管的使用,并且必须为每个流程创建一个主管.
在这种情况下,任何人都可以向我解释主管的正确用法吗?
(我不做Elixir,所以这都使用Erlang语法)
创建一个可以有几个相同类型的孩子的主管
主管并不关心孩子们的"类型"(在某种意义上,你正在使用它).子规范包含id一个start函数,以及与您的问题无关的一些其他内容.
如果id不同,您可以start为多个孩子使用相同的功能.
我怀疑你遇到困难的地方是你的孩子有名字.那就是:在你的init功能中,你已经打电话gen_server:start_link/4,传递类似的东西{local, ?MODULE}.这些进程都尝试使用相同的名称注册,因此您会收到already_started错误.