Looking for erlang Answers? Try Ask4KnowledgeBase
Looking for erlang Keywords? Try Ask4Keywords

Erlang Languagedirector


Introducción

Biblioteca de supervisión flexible, rápida y potente para los procesos de Erlang.

Observaciones

Advertencias

  • No use 'count'=>infinity y restart elementos en su plan.
    me gusta:
Childspec = #{id => foo
             ,start => {bar, baz, [arg1, arg2]}
             ,plan => [restart]
             ,count => infinity}.

¡Si su proceso no se inició después de la falla, el director se bloqueará y volverá a intentar reiniciar su proceso infinity ! Si está usando infinity para 'count' , use siempre {restart, MiliSeconds} en 'plan' lugar de restart .

  • Si tienes planes como:
Childspec1 = #{id => foo
              ,start => {bar, baz}
              ,plan => [restart,restart,delete,wait,wait, {restart, 4000}]
              ,count => infinity}.

Childspec2 = #{id => foo
              ,start => {bar, baz}
              ,plan => [restart,restart,stop,wait, {restart, 20000}, restart]
              ,count => infinity}.

Childspec3 = #{id => foo
              ,start => {bar, baz}
              ,plan => [restart,restart,stop,wait, {restart, 20000}, restart]
              ,count => 0}.

Childspec4 = #{id => foo
              ,start => {bar, baz}
              ,plan => []
              ,count => infinity}.

¡El resto del elemento de delete en Childspec1 y el resto del elemento de stop en Childspec2 nunca se evaluarán!
¡En Childspec3 quieres ejecutar tu plan 0 veces!
¡En ChildSpec4 no tienes ningún plan para ejecutar tiempos infinity !

  • Cuando actualiza una versión utilizando release_handler , release_handler llama a supervisor:get_callback_module/1 para obtener su módulo de devolución de llamada.
    En OTP <19, get_callback_module/1 utiliza el registro de estado interno del supervisor para proporcionar su módulo de devolución de llamada. Nuestro director no conoce el registro de estado interno del supervisor, luego el supervisor:get_callback_module/1 no funciona con los directores .
    La buena noticia es que en OTP> = 19 supervisor:get_callback_module/1 funciona perfectamente con el director s :).
1> foo:start_link().
{ok,<0.105.0>}

2> supervisor:get_callback_module(foo_sup).
foo

3>

director Ejemplos relacionados