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