Erlang:Hooks vs gen_event

时间:2009-11-11 18:22:16

标签: erlang

问题是为什么有些应用程序(比如ejabberd)使用自己的钩子模块(例如ejabberd_hooks.erl)而不是gen_event?

2 个答案:

答案 0 :(得分:12)

Ejabberd钩子和gen_event是完全不同的东西。 Ejabberd钩子由调用它们的进程评估 - gen_event处理程序在一个gen_event进程中运行。由于Ejabberd需要为大多数消息运行许多钩子,因此将每个xmpp消息发送到许多不同的gen_event进程不会像Ejabberd方法那样获得高消息吞吐量。

答案 1 :(得分:2)

不要指望答案太有趣了。要么是因为作者不熟悉gen_event,要么在2004年添加ejabberd_hooks时它的表现不够好。

相关问题