如何在网络连接可用之前阻止erlang进程

时间:2010-12-17 21:48:35

标签: mobile synchronization erlang

我在两个不同的erlang节点(在2台不同的机器或设备上)之间建立了一种同步机制。其中一个设备将与网络断开连接以完成另一项任务。

当设备重新连接到网络时,它需要联系另一个erlang节点以启动数据同步。

当网络连接可用时,erlang中是否有办法接收消息?或者我是否必须进行某种民意调查。

谢谢, 布拉德

1 个答案:

答案 0 :(得分:1)

您可以通过net_kernel:monitor_nodes/1订阅节点连接更改。这会向您发送可用于驱动您自己的同步逻辑的{nodeup, Node}{nodedown, Node}条消息。

您可能希望定期运行net_adm:ping(TargetNode)的进程尝试连接到其他节点,以便随后获取{nodeup, TargetNode}消息。这样可以避免通过轮询(未记录的)inet:getiflist/0进行更改来明确检查OS网络可用性。