我需要在应用程序启动时启动GenServer,但是它的PID将需要调用并转换Genserver。我将如何在应用程序的其余部分中获取该信息以供将来使用。
如果GenServer将死亡并且将由主管重新启动它将收到新的pid并且您的“存储”将不再有效 - 您将无法访问您的GenServer。这就是你应该在这里使用名字的原因:
{:ok, _} = GenServer.start_link(MyApp, [:hello], name: :your_genserver_name)
那么call / cast会是这样的:
def get_state do
GenServer.call(:your_genserver_name, {:get_state})
end
有关详细信息,请参阅this部分文档。