我在 elixir 中有一个简单的事件处理程序,使用GenEvent
:
defmodule myHandler do
use GenEvent
#Callback
def handle_event {:message, x}, state do
IO.puts("Message value is #{x}")
{:ok, [x|state]}
end
end
我可以以通常的方式启动一个处理程序和一个管理器:
{:ok, mgr} = GenEvent.start_link
myServer.start_link(mgr)
GenEvent.add_handler(mgr,myHandler, [])
但是,我想启动一个监督树,其中有 N 个处理程序,每个处理程序都有不同的 id,使用相同的管理器。
我试过:
Gen.Event.add_handler({mgr, :id1},myHandler, [])
,没有运气!相反,我收到以下错误:
** (Mix) Could not start application : exited in: myApp.start(:normal, [])
** (EXIT) no connection to :id1
我是 Elixir 的新手,所以在文档方面有点挣扎。如果有人能告诉我怎么做,我将不胜感激!谢谢。