动态主管作为儿童主管开始自己

时间:2013-06-23 07:41:52

标签: process erlang supervisor

我需要一位可以开始两种孩子的主管。

第一个是主管孩子,就像主管一样, 我可以像管理员那样用同一个模块开始一个孩子吗?

例如:

-module(test_sup).
-behaviour(supervisor).

-export([start_link/0]).
-export([init/1]).

start_link() ->
     supervisor:start_link({local,?MODULE}, ?MODULE, []).

init(_Args) ->
        RestartStrategy = {one_for_one, 10, 60},
        {ok, {RestartStrategy, 

        [{sup,
        {sup, start_link, []},
        permanent, infinity, supervisor, [sup]},

  ]}}.

在管理程序模块中我初始化一个具有相同模块的孩子,是否可能?

第二种孩子是普通工人,拥有自己的模块,这不是问题所在。 但是我可以在管理程序模块中启动这两种不同的动态吗?

2 个答案:

答案 0 :(得分:1)

在您的评论中,您说过要为每个遇到的子文件夹启动一个进程。 OTP为此创建了simple_one_for_one主管。

在工作进程的start_link中,您可以提供希望进程索引的目录路径作为参数。

您可以查看我的full text search engine教程,了解simple_one_for_one主管的工作示例。

答案 1 :(得分:0)

沃德的建议确实很好。您可以查看此页面:LearYousomeErlang : the count of application,它有一个您应该使用的模式的完整示例