当节点加入或离开集群时,进程是否有办法接收消息?知道离开的原因也会很好。
答案 0 :(得分:8)
您可以使用:net_kernel.monitor_nodes
。只需从进程中调用:net_kernel.monitor_nodes(true)
,现在该进程将在每次节点连接或断开连接时收到消息。
这是一个演示:
$ iex --name foo@127.0.0.1
iex(foo@127.0.0.1)1> :net_kernel.monitor_nodes(true)
:ok
我使用iex --name bar@127.0.0.1
启动了一个新节点并运行Node.connect :"foo@127.0.0.1"
:
iex(foo@127.0.0.1)2> flush
{:nodeup, :"bar@127.0.0.1"}
:ok
我终止了新节点:
iex(foo@127.0.0.1)3> flush
{:nodedown, :"bar@127.0.0.1"}
:ok