我有一个主管,它开始 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])。我该如何申请?如何使用不同的 ID 启动多个同名应用程序(这样我可以访问同一个 .app 文件)(这样我就可以使用 supervisor:start_child(?SERVER, [Id]) 启动我的孩子)?
如果我的问题不够清楚,这是我的代码。因此,目前,es_simulator_dispatcher启动es_simulator_sup。我想要这个:es_simulator_dispatcher 启动 es_simulator_app 启动 es_simulator_sup。这里的所有都是它的 :-)
在此先感谢,dijxtra