是否有可能级联的应用程序内主管?

E.g。主管sup1产卵它创建了一个主管sup2子进程?

有帮助吗?

解决方案

您可能想给孩子添加为监事。

它是在一个主管的儿童的childspec的条目。的儿童的“类型”可以被设置为“监”:

http://www.erlang.org/doc/design_principles/sup_princ html的#规格

也许你可以通过孩子做开始主管自己太多,但它至少不太优雅,但不太明显,你在做什么。

HTH, 小时。

其他提示

是的,你可以简单地添加监事监事的孩子。还是混搭。我做这样的事情通常是:

(在我的顶层导师)

init([]) ->
    Args = [],
    ModuleArray = [get_info(Module, Args)
           || Module
              <- [emx_nodestate, emx_sup_data, emx_sup_util, emx_sup_api,
                  emx_flow]],
    {ok, {{one_for_one, 3, 1}, ModuleArray}}.

get_info(Module, Args) ->
    {Module, {Module, start_link, [Args]}, permanent, 10000,
     worker, [Module]}.

然后像emx_sup_data(行为管理器)包含:

init([]) ->
    Args = [],
    ModuleArray = [get_info(Module, Args)
           || Module <- [job_housekeep]],
    {ok, {{one_for_all, 3, 1}, ModuleArray}}.

get_info(Module, Args) ->
    {Module, {Module, start_link, [Args]}, permanent, 10000,
     worker, [Module]}.

和类似emx_nodestate(行为gen_server)

init([]) ->
    {ok, #state{status=starting, interested=[]}}.

工程就像一个梦......!

要看到其他人如何构建他们的应用程序你为什么不启动一个程序并运行工具栏:

toolbar:start()

这使你主管层次结构的图形视图。快速浏览一下内核监督树,或函数mnesia或雅司病,会告诉你什么是“正常”的监督树的样子。

您构成由一个应用程序的监督员监控的子系统的应用。每个子系统可以是副系统的主管下很多子子系统(继续递归功能性的方式施加图案,直到用完粒度的...)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top