【发布时间】:2011-10-11 12:52:44
【问题描述】:
我有一个主管,应该启动 simple_one_for_one 工人。当我第一次致电start_child() 时,一切都很顺利。但是,当我第二次这样做时,我得到了{error,{already_started,<0.71.0>}}。为什么simple_one_for_one 主管会给我回复already_started?我错过了什么?
这里是代码:supervisor,worker。
【问题讨论】:
-
你会对你的 gen 服务器处理消息感到非常困惑,因为你会产生一个子节点来向自己发送消息,然后在等待接收该消息时阻塞。
-
为什么?我在单独的孩子中完成工作以防止 gen_server 崩溃。这是一件坏事吗?建议将不胜感激:-)
-
如果gen_server崩溃了会不会是一场灾难?它将由主管重新启动。如果您担心错误,请使用
try ... catch ... end包装调用。虽然进程很便宜,但不必要地创建它们并没有任何好处,而且这里没有并发。 -
你能把代码贴在这里吗?如果该链接断开,这个问题将毫无用处。
标签: erlang erlang-otp erlang-supervisor simple-one-for-one