私は、たくさんのof_one_for_oneワーカーを開始する上司(aliceと呼ばれています)を持っています。今、私はすべての作品について一緒に情報を得たいと思っています。たとえば、ワーカーがTCPサーバーであり、ワーカーが使用するすべてのポート番号、またはそれらのワーカーに接続されているすべてのリモートアドレスを取得したいとします。この機能はどこに置くべきですか?simple_one_for_one workersについての情報を収集します。
Supervisorにはgen_server機能がなく、コールに応答できません。だから、私にとっては、最も妥当な方法は、スーパーバイザーのアリスを生み出す別のスーパーバイザー(ボブと呼ぶ)とスーパーバイザーを呼び出すことによって{get、ports_used_by_alices_workers}のようなコールを実装する別のgen_server(charile)を持つことです:which_children(alice)それはそれぞれのアリスの子供のためのポートです。だからチャーリーはアリスの兄弟で、アリスの子供たちに電話をかけます。それは大丈夫ですか?あるいはこれを行うためのよりエレガントな方法がありますか?
ありがとう、監督:which_children/1は私が必要としていたものです。 – dijxtra
文書化されていないことを行うことは、おそらくかなり悪いアドバイスです。私はあなたの答えからそれを削除します。 –