スーパーバイザーに子プロセスを開始するように指示するロジックモジュールがあります。これらの子のpidをロジックモジュールの状態で保存する必要があります。ただし、スーパーバイザーが子pidを再起動した場合は、子pidも更新する必要があります。
したがって、start_child呼び出しからの戻り値pidを使用することはできません。これは、再起動ではなく、最初の開始時にのみpidを取得するためです。今、私は子プロセスに、子のinit関数からロジックモジュールのレジスタ関数(新しいpidで状態を更新する)を呼び出させます。このようにして、ロジックモジュールは、プロセスが再起動されるたびに、その状態のpidを更新できます。ロジックモジュールはgen_serverであり、子プロセスを登録するときにキャストを実行しています。
誰かがこれに関する問題を見ることができますか、そしてそれを行う他の「適切な」方法はありますか?