使用以下方式获取PID:via with:gproc

时间:2017-10-05 01:19:06

标签: elixir

我正在使用:gproc命名一些动态启动的GenServers,但我想向这些进程发送消息,我需要PID,如果我有gproc,我不确定如何使用:gproc.reg/1我没有使用 def start_link(name) do IO.inspect(via_tuple(name), label: "NAME") GenServer.start_link(__MODULE__, %{name: name, songs: []}, name: via_tuple(name)) end def queue(name, songs) do GenServer.cast(via_tuple(name), {:queue, songs}) end def dispatch(name) do GenServer.cast(via_tuple(name), :dispatch) end def via_tuple(name) do {:via, :gproc, {:n, :l, {:name, name}}} end

基本上这是GenServer的一部分

init

并且在<style>函数中我只是安排一个任务来发送一些消息,但我需要PID。我想过一些这样做的方法但是它们看起来并不好看。这可能是在这里检索PID的正确方法吗?

我不确定这部分但是,我只是在这里注册名称而不是要检索的实际进程,对吧?如果是这样的话,我怎么能解决这个问题呢?

0 个答案:

没有答案