Erlang 一名主管有多个子女
我是长生不老药的初学者,然后我尝试(受《长生不老药编程手册》示例的启发)创建一个主管,可以有几个相同类型的孩子。我弄错了Erlang 一名主管有多个子女,erlang,elixir,otp,Erlang,Elixir,Otp,我是长生不老药的初学者,然后我尝试(受《长生不老药编程手册》示例的启发)创建一个主管,可以有几个相同类型的孩子。我弄错了 {:error, {{:EXIT, {{:badmatch, {:error, {:already_started,#PID<0.122.0>}}},... {:error,{:EXIT,{{:badmatch,{:error,{:ready_start,#PID}},{,。。。 也许我误解了主管的用法,必须为每个流程创建一个主管 有人能告诉我在这种情况下监
{:error, {{:EXIT, {{:badmatch, {:error, {:already_started,#PID<0.122.0>}}},...
{:error,{:EXIT,{{:badmatch,{:error,{:ready_start,#PID}},{,。。。
也许我误解了主管的用法,必须为每个流程创建一个主管
有人能告诉我在这种情况下监管者的正确用法吗?(我不使用长生不老药,所以这些都使用Erlang语法)
创建一个可以具有多个相同类型的子级的主管
主管不关心孩子的“类型”(在您使用它的意义上)。孩子规范包含一个id
、一个start
函数以及一些与您的问题无关的其他内容
如果id
不同,您可以对多个子项使用相同的start
功能
我怀疑您遇到的困难是您的孩子有一个名字。也就是说:在
init
函数中,您调用了gen\u server:start\u link/4
,传递了类似{local,?MODULE}的内容
。这些进程都试图使用相同的名称注册,因此您得到的已启动
错误。您还可以包含引发该错误的代码吗?还可以查看simple\u one\u for\u one
类型的主管,他们可以定义一个子级,但动态生成多个子级。您是对的,我尝试了o覆盖工人创建中的名称,该名称似乎不起作用。非常感谢:)