[erlang-questions] Is supervisor notified when child is restarted?

Martin Koroudjiev mrtndimitrov@REDACTED
Tue Jul 28 22:25:21 CEST 2015


Thank you for your time and information. Process groups sound
interesting. I will dig deeper.

Regards,
Martin

On 7/28/2015 6:24 PM, Sean Cribbs wrote:
> Woops, forgot to include the link:
>
> [1] http://erlang.org/doc/man/pg2.html
>
> On Tue, Jul 28, 2015 at 10:23 AM, Sean Cribbs <seancribbs@REDACTED
> <mailto:seancribbs@REDACTED>> wrote:
>
>     Hi Martin,
>
>     It sounds like you need either to use either registered names,
>     process groups, or the one_for_all strategy. Registered processes
>     are the easiest way, you can simply refer to them by the atom --
>     but you must expect that sometimes messages will be lost if the
>     process is restarting. Alternately, if you change this
>     supervisor's strategy to one_for_all you will ensure that every
>     process always has the correct state (assuming it already starts
>     up in the correct state), but existing work from non-failed
>     processes can be lost. For process groups, you can use pg2 [1]
>     which comes with OTP, or there are several alternate
>     implementations available on github, but messaging the other
>     processes in this small group will incur additional overhead.
>
>     Each solution has tradeoffs, I hope that helps you decide which
>     one to use.
>
>     On Tue, Jul 28, 2015 at 10:03 AM, Martin Koroudjiev
>     <mrtndimitrov@REDACTED <mailto:mrtndimitrov@REDACTED>> wrote:
>
>         Hello,
>
>         I am wondering how can I get notified when a child process is
>         restarted?
>         Imagine this simple scenario - supervisor with one_for_one
>         strategy and
>         3 gen_servers as workers. Each in its state has the PIDs of
>         the other 2
>         and sends them messages. Now if one child gets restarted, the
>         other 2
>         will have the old PID. How can I notify them?
>
>         I can't restart the whole supervision tree because the number
>         of child
>         processes is buried deep in the initialization logic of the
>         application.
>
>         Regards,
>         Martin
>         _______________________________________________
>         erlang-questions mailing list
>         erlang-questions@REDACTED <mailto:erlang-questions@REDACTED>
>         http://erlang.org/mailman/listinfo/erlang-questions
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20150728/ae7d0ae9/attachment.htm>


More information about the erlang-questions mailing list