4
Я хочу имитировать поведение erl -sname example -hidden
, но динамически. Как я могу удалить узел из видимости в кластере?Erlang: Как удалить узел из узлов других узлов()?
См. Комментарии @mwt в @ Yasir Arsanukaev для дополнительного разъяснения того, что я пытаюсь сделать.
К сожалению, это не идет так далеко, как я надеялся. Когда вы запускаете узел как скрытый, а затем пинговаете его, он не будет отображаться в узлах(). Используя вышеописанный метод, если вы снова выполните ping после отключения, узлы снова появятся в узлах(). – mwt
@mwt: ['nodes/1'] (http://www.erlang.org/doc/man/erlang.html#nodes-1) имеет другие аргументы, которые вы можете выбрать:' visible', 'hidden', 'connected',' this', 'known'. И целью ['ping/1'] (http://www.erlang.org/doc/man/net_adm.html#ping-1) является попытка« установить соединение с «Узлом». Возвращает «pang», если он терпит неудачу, или «понг», если он успешный ». Я думаю, вы можете реализовать желаемое поведение, используя эти примитивы. –
Возможно, но пока я не совсем понимаю. Прямо сейчас у меня кластер. Всякий раз, когда соединяется новый узел, он пытается подключиться к каждому узлу кластера, отправив его. Если один из этих узлов был -hidden, пинг не будет подключать новый узел к скрытому узлу, чего я хочу. Однако просто отсоединение узла, который я хочу сделать скрытым, позволяет подключать его посредством прямого пинга, после чего он снова появляется в узлах(). Теперь, если есть способ изменить состояние узла, в котором вызывающие узлы() с любым аргументом все же исключают его, даже после прямого пинга, я хотел бы знать, что это такое. – mwt