9

我有一个应该开始simple_one_for_one工人的主管。当我第一次打电话start_child()时,一切都很顺利。但是,当我第二次这样做时,我得到了{error,{already_started,<0.71.0>}}. 为什么simple_one_for_one主管会给我回一个already_started?我错过了什么?

这是代码:supervisorworker

4

1 回答 1

19

您正在为您的 gen_server 注册一个(本地)名称。一旦你开始一个,你就不能开始另一个同名的。

如果您改用 gen_server:start_link/3 ,从当前的 gen_server:start_link/4 调用中删除第一个参数,您应该能够启动多个。

于 2011-07-23T06:59:05.600 回答