在Elixir中,如何在节点加入或离开集群时收到通知?

时间:2018-03-13 15:50:06

标签: elixir

当节点加入或离开集群时,进程是否有办法接收消息?知道离开的原因也会很好。

1 个答案:

答案 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
相关问题