问题标签 [simple-one-for-one]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1840 浏览

erlang - simple_one_for_one start_child() 返回 already_started

我有一个应该开始simple_one_for_one工人的主管。当我第一次打电话start_child()时,一切都很顺利。但是,当我第二次这样做时,我得到了{error,{already_started,<0.71.0>}}. 为什么simple_one_for_one主管会给我回一个already_started?我错过了什么?

这是代码:supervisorworker

0 投票
2 回答
484 浏览

erlang - Simple_one_for_one 应用程序

我有一个主管,它开始 simple_one_for_one 孩子。每个孩子实际上都是一个主管,有自己的树。每个孩子都有一个唯一的 ID,所以我可以区分它们。然后每个 gen_server 都以 start_link(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