Ich habe ein Logikmodul, das einem Supervisor den Start von untergeordneten Prozessen anweist. Ich muss diese Kinder pid im Zustand der Logikmodule speichern. Aber ich muss auch ein Kind Pid aktualisieren, wenn der Supervisor es neu startet.Registrieren eines untergeordneten Elements in dem Prozess, der den Aufruf start_child initiierte
So kann ich nicht den Rückgabewert pid von der start_child Anruf verwenden, da das mir nur die pid beim ersten Start, nicht die Neustarts geben wird. Im Moment mache ich den Child-Prozess eine Register-Funktion aufrufen (Update-Status mit neuen PID) im Logikmodul von der Childs-Init-Funktion. Auf diese Weise kann das Logikmodul die pid in ihrem Zustand aktualisieren, wenn ein Prozess neu gestartet wird. Das Logikmodul ist ein gen_server und ich mache eine Umwandlung, wenn ich den Kindprozess registriere.
Kann jemand ein Problem mit diesem sehen und gibt es irgendeinen anderen "richtigen" Weg, es zu tun?