Is it possible to restart restarted erlang applications automatically?

I have my_app application. He has other applications on which it depends.

my_app.app:

{application, my_app,
 [ {description, "My App"},
   {vsn, "0.0.1"},
   {registered, []},
   {applications, [some_dep1,
                   some_dep2]},
   {mod, {my_app_app, []}},
   {env, []}
 ]}.

If it is impossible to start some_dep1or some_dep2, it my_appalso will not start. So far so good.

However, if something goes wrong while the system is running and some_dep1explodes (takes supervisors to the whole tree), erlang will eventually destroy the application some_dep1; however my_app is not killed and it will not be notified (what can I find)

Is there any way to handle this? Ideally, I would like it to restart (just like supervisors handle reboots, with thresholds, etc.) Or, alternatively, they kill any applications that depend on it.

- , .

!

+4
1

"" , Erlang node , . , application:start application:ensure_all_started, - temporary, , , . - :

application:start(some_dep1, permanent)

application:ensure_all_started(my_app, permanent)

: , , , , , , . ( , , .) "" - heart, Erlang node, .

+7

Source: https://habr.com/ru/post/1655628/


All Articles