simple_one_for_oneの子を開始するスーパーバイザーがいます。実際、各子は独自のツリーを持つスーパーバイザーです。それぞれの子供は一意のIDで始まるので、私はそれらを区別することができます。次に、各gen_serverはstart_link(Id)で開始されます。ここで、
-define(SERVER(Id), {global, {Id, ?MODULE}}).
start_link(Id) ->
gen_server:start_link(?SERVER(Id), ?MODULE, [Id], []).
したがって、各gen_serverは{global、{Id、module_name}}で簡単に追加できます。
ここで、この子スーパーバイザーをアプリケーションにします。したがって、私の母のスーパーバイザーは、スーパーバイザーではなくアプリケーションを開始する必要があります。IDをアプリケーションに渡すという一部を除いて、これは簡単なはずです。IDでスーパーバイザーを開始するのは簡単です:supervisor:start_child(?SERVER、[Id])。アプリケーションでそれを行うにはどうすればよいですか?同じ名前の複数のアプリケーションを(同じ.appファイルにアクセスできるように)異なるIDで起動するにはどうすればよいですか(子供をsupervisor:start_child(?SERVER、[Id]))で起動できますか?
私の質問が十分に明確でない場合は、ここに私のコードがあります。したがって、現在、es_simulator_dispatcherはes_simulator_supを開始します。これが欲しいのですが、es_simulator_dispatcherはes_simulator_appを開始し、es_simulator_supはes_simulator_supを開始します。それがすべてです:-)
よろしくお願いします、dijxtra