我有一个应该启动simple_one_for_one
工人的主管。当我第一次打电话给start_child()
时,一切都很顺利。但是,当我第二次这样做时,我得到{error,{already_started,<0.71.0>}}
。为什么simple_one_for_one
主管会给我一个already_started
?我错过了什么?
以下是代码:supervisor,worker。
答案 0 :(得分:15)
您正在为gen_server注册(本地)名称。一旦你开始一个,你就无法启动另一个同名的。
如果您使用gen_server:start_link / 3,从当前gen_server:start_link / 4调用中删除第一个参数,您应该可以启动多个。