3

例如,现在我有一个 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 会不会让我陷入困境?等等)?

4

1 回答 1

4

There is no way to directly use OTP behaviours from C. I also don't think you should mimic the OTP behaviours to use them directly.

You should just first use RPC and then test your code against your performance requirements. If needed, you could always send a simple message to your gen_event process to make it notify itself through its handle_info/2 method.

于 2011-01-22T23:30:42.120 回答