Когда использовать erlang application:start или include_applications и супервизор?

У меня есть приложение Erlang, которое имеет зависимость в своем каталоге deps от другого приложения.

Насколько я понимаю, я тоже могу;

а) запустить мое зависимое приложение из моего включающего приложения, вызвав application:start(some_other_app), который запускает приложение и показывает, что оно работает автономно в Observer.

b) включить мое зависимое приложение в файл .app с {included_applications, [some_other_app]}, чтобы приложение загружалось, а не запускалось, а затем запускало включенное приложение из моего собственного руководителя верхнего уровня. Это снова запускает включенное приложение и показывает, что оно работает ниже моей собственной иерархии контроля в Observer.

Вопрос в том, когда мне следует использовать тот или иной подход? Если я использую вариант «а» и мое зависимое приложение завершает работу, будет ли оно перезапущено, или мне следует использовать подход «б», чтобы все имеющиеся у меня зависимости контролировались соответствующим образом?

Кстати, я использую Rebar для упаковки и управления своими зависимостями.

Спасибо,

Энди.

5
задан Vivilar 21 June 2012 в 15:11
поделиться