У меня есть логический модуль, который говорит супервизору запустить дочерние процессы. Мне нужно хранить pid этих детей в состоянии логических модулей. Но мне также нужно обновить дочерний pid, если супервизор перезапустит его.
Так что я не могу использовать pid возвращаемого значения из вызова start_child, так как это даст мне pid только при первом запуске, а не при перезапуске. Прямо сейчас я заставляю дочерний процесс вызывать функцию регистра (обновляет состояние с новым pid) в логическом модуле из дочерней функции init. Таким образом, логический модуль может обновлять pid в своем состоянии при каждом перезапуске процесса. Логический модуль является gen_server, и я выполняю приведение, когда регистрирую дочерний процесс.
Может кто-нибудь увидеть проблему с этим и есть ли другой, более "правильный" способ сделать это?