存储GenServer的pid以备将来使用

时间:2017-12-20 12:23:21

标签: elixir phoenix-framework gen-server

我需要在应用程序启动时启动GenServer,但是它的PID将需要调用并转换Genserver。我将如何在应用程序的其余部分中获取该信息以供将来使用。

1 个答案:

答案 0 :(得分:8)

如果GenServer死亡并且将由主管重新启动,它将收到新的pid,而您的“存储”将不再有效 - 您将无法访问您的GenServer。这就是你应该在这里使用名字的原因:

{:ok, _} = GenServer.start_link(MyApp, [:hello], name: :your_genserver_name)

然后调用/演员看起来像:

  def get_state do
    GenServer.call(:your_genserver_name, {:get_state})
  end

有关详情,请参阅this部分文档。