【发布时间】:2013-06-19 23:11:32
【问题描述】:
我需要一个能培养两种孩子的导师。
第一个是主管孩子,和主管一样, 我可以用与主管相同的模块开始一个孩子吗?
例如:
-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]},
]}}.
在主管模块中我用相同的模块初始化一个孩子,这可能吗?
第二种孩子是普通工人,有自己的模块,这不是问题。 但是我可以在主管模块中动态启动这两种不同的类型吗?
【问题讨论】:
-
如果一个监督者自己产生,那么你会得到一个无限的监督者树,对吧?内存不足时可能会使应用程序崩溃。似乎比较没用。你想完成什么?
-
我想建立一个目录的索引,例如我在一个目录中启动主管,并且对于每个子文件夹我想启动一个新的主管进程。并且每个文件夹的主管启动一个子进程来索引文件夹的文件。这是课程中的练习
标签: process erlang erlang-supervisor