Я не уверен, смогу ли я правильно сформулировать свой вопрос, но я постараюсь изо всех сил.
Мне кажется неудобным то, как вам нужно настроить дерево супервизоров (sup, sup-tress и другие более сложные деревья).
Возьмем, к примеру, следующее (я уже сделал эти примеры и расширил их): http://learnyousomeerlang.com/supervisors
Мне не нравится идея запуска моего приложения (деревья супервизоров), а затем необходимость отправлять команды erl в оболочке, чтобы приложение вело себя так, как я тоже. Возьмите пример нижней оболочки с сайта:
1> supervisor:start_child(band_supervisor, [djembe, good]).
Musician Janet Tennelli, playing the djembe entered the room
{ok,<0.690.0>}
2> supervisor:start_child(band_supervisor, [djembe, good]).
{error,{already_started,<0.690.0>}}
3> supervisor:start_child(band_supervisor, [drum, good]).
Musician Arnold Ramon, playing the drum entered the room
{ok,<0.696.0>}
3> supervisor:start_child(band_supervisor, [guitar, good]).
Musician Wanda Perlstein, playing the guitar entered the room
{ok,<0.698.0>}
4> supervisor:terminate_child(band_supervisor, djembe).
{error,simple_one_for_one}
5> musicians:stop(drum).
Arnold Ramon left the room (drum)
ok
Для меня это странно, мне пришлось бы запускать своего супервизора (или что-то еще), а затем вводить другие команды через оболочку, чтобы получить то, что я хочу.
В качестве реального примера скажем, например, что у меня есть диспетчер прослушивания, и в этом диспетчере я говорю, что хочу всегда иметь 100 сотрудников прослушивания. Их задача - прослушивать сокет, созданный Listen Supervisor. Учитывая учебник (и другие онлайн-версии), мне пришлось бы вводить оболочку 100 раз, чтобы запустить всех дочерних элементов.
Итак, я предполагаю, что мой вопрос следующий ...
Как все это можно сделать в приложении или супервизоре (как бы вы это ни хотели), чтобы ничего не вводить в оболочку после запуска вашего файла луча.
Я знаю, что должен быть способ, но я просто не могу придумать достаточно хорошую архитектуру, которая позволила бы мне делать это стандартным и чистым способом.
Спасибо за ваше время.