我可以在 C 节点中获得 Erlang OTP 行为吗?
Posted
技术标签:
【中文标题】我可以在 C 节点中获得 Erlang OTP 行为吗?【英文标题】:Can I get Erlang OTP behaviors in C Nodes? 【发布时间】:2011-06-12 14:10:42 【问题描述】:例如,现在我有一个 C 节点(称为 CN),它连接到一个 erlang 节点(称为 EN)并使用 RPC 来使用 OTP行为。因此,要将 CN 的事件发送到 EN 上的事件管理器,我将 CN 连接到 EN 并执行
args = erl_format("[data_man, ~f, ~f]", ch.at(0), ch.at(1));
erl_rpc_to(fd, "gen_event", "notify", args);
但是,那么,我的 C 节点确实不像一个节点(即为什么要创建一个只使用远程过程调用的节点?)。
有没有办法在 C 节点中直接使用 OTP 行为?
如果没有,我是否应该深入了解 OTP 使用的消息格式并使用该格式发送消息(即,我可以欺骗 OTP 行为吗?)? 我不喜欢这个想法,我将不得不注意 OTP 等的实施变化。
我的要求有硬延迟限制,这对我选择 C 进程和 Erlang 之间的通信有何影响(RPC 会不会让我陷入困境?等等)?
【问题讨论】:
【参考方案1】:没有办法直接使用 C 中的 OTP 行为。我也不认为你应该模仿 OTP 行为来直接使用它们。
您应该首先使用 RPC,然后根据您的性能要求测试您的代码。如果需要,您可以随时向您的 gen_event 进程发送一条简单的消息,使其通过其 handle_info/2 方法通知自己。
【讨论】:
以上是关于我可以在 C 节点中获得 Erlang OTP 行为吗?的主要内容,如果未能解决你的问题,请参考以下文章