「monitor_node」と呼ばれるプロセスの階層があります。これらの各 monitor_nodes は、1 つのスーパーバイザによって監視されます。
さて、これらのノードのそれぞれは、複雑な内部構造を持つ場合があります。つまり、適切に動作するために必要ないくつかのサブプロセスがある場合とない場合があります。例: keep-alive メッセージを送信するプロセス。これまでのところ、プレーンな spawn_link を使用してこれらの「内部」プロセスを作成してきました。
しかし、monitor_node (監視されている) の init 関数でそれらを生成すると、この関数が失敗することがあります (したがって、スーパーバイザー ツリー全体が失敗します)。私の質問は、これらの内部プロセスをスーパーバイザー ツリーに接続することは良い解決策でしょうか? monitor_node を内部プロセスを監視するスーパーバイザーに変更することを考えています。
私の疑問は次のとおりです。
非常に多くの非常に小さなプロセスを監視する必要があります。これが良い習慣かどうかはわかりません。
特定の「内部」プロセスが単純なプロセスであるか、何らかの内部構造を持っている(他のプロセスも生成する)ことを事前に知らない場合があります。後者の場合は、おそらくこれらの「内部内部」プロセスをスーパーバイザー ツリーにアタッチする必要があります。
あまり混乱していないことを願っています。答えを楽しみにしています。
編集:
非常によく似た(同じではないにしても)問題がここで議論されています(3番目の投稿)。与えられた解決策は、I GIVE CRAP ANSWERS が与えたものとほとんど同じです。