Erlang / OTP App 的 handle_info 没有收到 nodedown, _, _ 或 nodedown, _ 消息

Posted

技术标签:

【中文标题】Erlang / OTP App 的 handle_info 没有收到 nodedown, _, _ 或 nodedown, _ 消息【英文标题】:Erlang / OTP App's handle_info not getting nodedown, _, _ or nodedown, _ messagesErlang / OTP App 的 handle_info 没有收到 nodedown, _, _ 或 nodedown, _ 消息 【发布时间】:2012-02-07 02:28:45 【问题描述】:

我有一个 Erlang/OTP 应用程序,当伴随节点出现故障时,它的 handle_info 函数没有收到 nodedown, _, _ nodedown, _ 消息。但是,当同伴节点恢复时,我确实收到了nodeup, _, _ 消息。

我在 OTP 服务器的init/1 函数中使用了net_kernel:monitor_nodes( true, [node_type, all])

另外,如果我将这个 OTP 应用程序作为应用程序启动,receive X->X 就完成了。在 shell 上,然后杀死同伴节点,我在 shell 上得到一个 nodedown, _, _

那么,如果 shell 是,为什么 handle_info 没有收到消息?

谢谢!

【问题讨论】:

我们可能需要更多代码来查看发生了什么。从您所写的内容来看,它应该被交付。 【参考方案1】:

这是 RabbitMQ 与当时新发布的 R15A 版本的 erlang 的兼容性问题。切换回 R14B3 为我解决了这个问题。

【讨论】:

以上是关于Erlang / OTP App 的 handle_info 没有收到 nodedown, _, _ 或 nodedown, _ 消息的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Erlang/OTP 中使用 application:get_env()?

二郎; OTP 应用程序“app.config”

如何构建 Erlang OTP UDP 服务器

关闭tcp套接字的erlang

初学者的 Erlang/OTP 行为

如何使用 com.ericsson.otp.erlang 确定 erlang 术语是不是为空