gpt4 book ai didi

pid - 将事件从 GenEvent 服务器转发到我在 elixir otp 中的进程

转载 作者:行者123 更新时间:2023-12-04 19:27:46 25 4
gpt4 key购买 nike

我有一个 GenEvent 服务器,当我向主服务器发送事件通知时,我希望能够添加几个获取转发事件的进程。

我可以创建一个转发器模块并传递一个 pid 来发送消息,但是因为它看起来像它必须是一个常见的模式,我想知道是否有更好的方法。

GenEvent docs处理程序的类型是

handler :: atom | {atom, term} | {pid, reference}

当我尝试将最后一个表单的处理程序添加到 GenEvent 服务器时,我总是会收到错误消息。
GenEvent.add_mon_handler(pid, {self, make_ref}, [])
{:error,
{:badarg,
[{:erlang, :apply, [#PID<0.59.0>, :init, [[]]], []},
{GenEvent, :do_handler, 3, [file: 'lib/gen_event.ex', line: 990]},
{GenEvent, :do_add_handler, 5, [file: 'lib/gen_event.ex', line: 947]},
{GenEvent, :handle_msg, 5, [file: 'lib/gen_event.ex', line: 608]},
{:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 240]}]}}

Elixir 文档中没有关于如何添加由 pid 和引用组成的处理程序的更多信息。 erlang documentation对于 gen_event 仅使用 atom 形式的处理程序显示它和 {atom, term} .

最佳答案

这是一个文档问题。函数GenEvent.add_mon_handler/3不接受由 {pid, ref} 组成的处理程序了。 https://groups.google.com/forum/#!topic/elixir-lang-talk/gyVce092C7I

关于pid - 将事件从 GenEvent 服务器转发到我在 elixir otp 中的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32819423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com