Erlang / OTP 应用程序的 handle_info 未获取 {nodedown, _, _ } 或 {nodedown, _} 消息
我有一个 Erlang/OTP 应用程序,当伴随节点出现故障时,其 handle_info 函数不会收到 {nodedown, _, _ }
或 {nodedown, _ }
消息。但是,当伴随节点重新启动时,我确实收到 {nodeup, _, _}
消息。
我在 OTP 服务器的 init/1
函数中使用 net_kernel:monitor_nodes( true, [{node_type, all}])
。
另外,如果我将此 OTP 应用程序作为应用程序启动,并完成接收 X->X 操作。在 shell 上,然后杀死同伴节点,我确实在 shell 上得到了 {nodedown, _, _ }
!
那么,如果 shell 是这样,为什么handle_info 没有收到消息呢?
谢谢 !
I have an Erlang/OTP app, whose handle_info function is not getting {nodedown, _, _ }
or {nodedown, _ }
messages when a companion node goes down. However, when the companion node comes back up, I do get {nodeup, _, _}
messages.
I use net_kernel:monitor_nodes( true, [{node_type, all}])
in the OTP server's init/1
function.
Also, if I start this OTP app as an application, and receive X->X
done. on the shell, and then kill the companion node, I do get a {nodedown, _, _ }
on the shell !
So why isn't handle_info getting the message if the shell is ?
Thanks !
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是 RabbitMQ 与当时新发布的 R15A 版本 erlang 的兼容性问题。切换回 R14B3 解决了我的问题。
'twas an issue with compatibility of RabbitMQ with the then newly released R15A version of erlang. Switching back to R14B3 solved the problem for me.