如何在exactor中实现动态的via_tuple reg?

时间:2016-09-29 01:55:30

标签: elixir

我正在为每个用户启动genserver,使用他们的ID作为名称。

def start_link(id) do
    GenServer.start_link(__MODULE__, id, name: via_tuple(id))
  end

defp via_tuple(id) do
    {:via, :gproc, {:n, :l, {:id, id}}}
  end

Api然后看起来像:

def state(id) do
  GenServer.call(via_tuple(id), :state)
end

def handle_call(:state, _, state) do     
 {:reply, state, state}
end

希望问题有道理,但是可以通过exactor的导出选项注册这样的流程吗?所以整个api的东西最终会像:

defcall get(id), state: state, do: reply(state)

我看到ExActor.GenServer, export: {:via, :gproc, :calculator}但无法获得用户ID。

0 个答案:

没有答案
相关问题