我需要一位可以开始两种孩子的主管。
第一个是主管孩子,就像主管一样, 我可以像管理员那样用同一个模块开始一个孩子吗?
例如:
-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]},
]}}.
在管理程序模块中我初始化一个具有相同模块的孩子,是否可能?
第二种孩子是普通工人,拥有自己的模块,这不是问题所在。 但是我可以在管理程序模块中启动这两种不同的动态吗?
答案 0 :(得分:1)
在您的评论中,您说过要为每个遇到的子文件夹启动一个进程。 OTP为此创建了simple_one_for_one
主管。
在工作进程的start_link中,您可以提供希望进程索引的目录路径作为参数。
您可以查看我的full text search engine教程,了解simple_one_for_one
主管的工作示例。
答案 1 :(得分:0)
沃德的建议确实很好。您可以查看此页面:LearYousomeErlang : the count of application,它有一个您应该使用的模式的完整示例