응용 프로그램 시작시 GenServer를 시작해야하지만 해당 PID는 Genserver를 호출하고 전송해야합니다. 어떻게 응용 프로그램의 나머지 부분에서 향후 사용을 위해 그것을 얻을 수 있습니다.나중에 사용할 수 있도록 GenServer의 pid 저장
2
A
답변
7
관리자가 GenServer를 죽이고 다시 시작하면 새 pid가 수신되고 "저장된"사람은 더 이상 유효하지 않으므로 GenServer에 액세스 할 수 없습니다.
def get_state do
GenServer.call(:your_genserver_name, {:get_state})
end
은 자세한 내용은 문서의 this 부분을 참조하시기 바랍니다 : 같은
{:ok, _} = GenServer.start_link(MyApp, [:hello], name: :your_genserver_name)
명명 된'GenServer' 생성 방법은 무엇입니까? 'GenServer.start_link/3'의': name' 옵션을보십시오. – Dogbert
'PID'를 저장하는 것은 일반적으로 좋은 생각이 아닙니다. 왜냐하면'PID'는 충돌을 견디지 못하기 때문에'name'은 충돌합니다. – mudasobwa
@ 도그 버트 감사합니다. 사용합니다 : 이름 –