问题是为什么某些应用程序(例如 ejabberd)使用自己的 hooks 模块(例如 ejabberd_hooks.erl)而不是 gen_event?
最佳答案
Ejabberd 钩子(Hook)和 gen_event 是完全不同的东西。 Ejabberd Hook 由调用它们的进程评估 - gen_event 处理程序在单个 gen_event 进程中运行。由于 Ejabberd 需要为大多数消息运行许多钩子(Hook),因此将每个 xmpp 消息发送到许多不同的 gen_event 进程不会获得像 Ejabberd 方法那样高的消息吞吐量。
关于Erlang:钩子(Hook)与 gen_event,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1717157/