문제
신청서 내에서 캐스케이드 감독자가 가능합니까?
예 : 감독자 sup1
감독자를 만드는 어린이 과정을 산란합니다 sup2
?
해결책
당신은 아마도 아이를 감독자로 추가하고 싶을 것입니다.
그것은 감독자의 자녀의 자녀의 입국입니다. 아동의 "유형"은 "감독자"로 설정할 수 있습니다.
http://www.erlang.org/doc/design_principles/sup_princ.html#spec
아마도 당신은 아마도 감독자 자체를 시작하는 아이를 통해 그것을 할 수 있지만 적어도 우아하지 않으며 당신이하고있는 일이 덜 분명합니다.
hth, h.
다른 팁
예, 감독자를 감독자의 자녀로 추가 할 수 있습니다. 또는 믹스 앤 매치. 나는 보통 이런 일을한다 :
(내 최고 수준의 감독자)
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 또는 YAWS를 간단히 살펴보면 '정상적인'감독자 트리가 어떻게 보이는지 보여줍니다.
귀하는 응용 프로그램 감독자가 감독하는 하위 시스템의 응용 프로그램을 작성합니다. 각 하위 시스템은 하위 시스템 감독자 하의 많은 하위 하위 시스템 일 수 있습니다 (세분성이 부족할 때까지 재귀 적 기능 방식으로 패턴을 계속 적용하십시오 ...)