Я создал общее поведение, которое инкапсулирует функциональность tcp / ip.Все, что пользователь должен сделать, это реализовать обратные вызовы, которые обрабатывают проанализированные «команды», поступающие из того, что находится на другой стороне сокета.
Мой универсальный behvour создает процесс слушателя порта, который прослушиваетпорт через gen_tcp: принять.Когда кто-то подключается к порту, прослушиватель портов просит супервизора ускорить новый прослушиватель портов, пока он продолжает обрабатывать связь через сокет с любым клиентом, который только что подключился.Поскольку каждый из этих обработчиков портов / обработчиков сокетов создается динамически и идентичен, я использую супервизор simple_one_for_one для их создания.Стандартный материал.
Вот мой вопрос.Если процесс прослушивания порта умирает, весь beivour не функционирует, так как порт не будет прослушиваться.Поскольку слушатель порта создается супервизором simple_one_for_one, супервизор не может перезапустить новый port_listener.
Итак, я создаю процесс keep_alive, который отслеживает «последний» прослушиватель порта и просит супервизора запустить еще одинэто должно умереть?Или есть какой-то другой передовой опыт для этого типа случая.
Кроме того, есть ли способ увидеть / изучить процесс, создаваемый этим поведением?Это не приложение, поэтому appmon здесь не работает.
Спасибо