我正在写一个 map/reduce word counter 来学习 OTP。我创建了一个可以启动减速器的 simple_one_for_one 主管。对于每个键,我想检查是否已经有一个孩子,如果没有,让主管创建孩子。
我目前在主管模块中启动孩子,如下所示:
start_child(Key) ->
supervisor:start_child(?SERVER, [Key]).
我想做这样的事情(未经测试):
start_child(Key) ->
case supervisor:child_pid(Key) of
Pid -> Pid;
_ -> supervisor:start_child(?SERVER, [Key])
end.
有什么好的 OTP 方法可以确定 Key 是否已经有一个孩子?