代码之家  ›  专栏  ›  技术社区  ›  Kirill Trofimov

Erlang:Hooks vs Gen_事件

  •  4
  • Kirill Trofimov  · 技术社区  · 16 年前

    问题是,为什么有些应用程序(如ejabbord)使用自己的hooks模块(如ejabbord_hooks.erl)而不是gen_事件?

    2 回复  |  直到 16 年前
        1
  •  12
  •   archaelus    16 年前

    埃贾巴德·胡克和根乌事件是截然不同的事情。EJaberd挂钩由调用它们的进程进行评估-gen_事件处理程序在单个gen_事件进程中运行。由于EJaberd需要为大多数消息运行多个钩子,因此将每个XMPP消息发送到许多不同的gen_事件进程不会获得像EJaberd方法那样高的消息吞吐量。

        2
  •  2
  •   Christian    16 年前

    不要期望答案太有趣。要么是因为作者不熟悉Gen_事件,要么是因为它在2004年加入ejabberd_Hooks时表现得不够好。