Я могу нормально запустить мою структуру событий, когда я регистрирую ее локально:
gen_event:start_link({local, foo_event_container}).
gen_event:add_handler(foo_event_container, foo_event_handler, []).
Вызов зарегистрированного () показывает foo_event_container, и когда я отправляю ему сообщения, они отображаются в обработчике.
Однако, когда я перезагружаю узел и пытаюсь
gen_event:start_link({global, foo_event_container}).
register () НЕ показывает контейнер, и когда я пытаюсь добавить в него обработчик
Я получаю
** exception exit: noproc
in function gen:call/4
in call from gen_event:rpc/2
Sasl не предоставляет никакой дополнительной информации, и поиск в этой проблеме приводит к предположению, что оболочка, в которой запущен контейнер, была уничтожена, что здесь не так, поскольку я пытаюсь получить к нему доступ с того же узла!
1) Есть идеи, что здесь происходит?
2) Является ли использование удаленного контейнера наилучшей конструкцией, или было бы лучше, чтобы каждый сервер использовал локальные контейнеры, которые отправляют сообщения удаленному процессу?
Спасибо!