Я пишу счетчик слов map/reduce, чтобы выучить 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?