7
एक साधारण GenServer
प्रक्रिया को देखते हुए।क्या एलिक्सर जेनसेवर प्रक्रिया की वर्तमान स्थिति प्राप्त करने का एक आसान तरीका प्रदान करता है?
defmodule KVServer do
use GenServer
def start do
GenServer.start(__MODULE__, %{}, name: :kv_server)
end
def store(k, v) do
GenServer.cast(:kv_server, {:store, k, v})
end
def handle_cast({:store, k, v}, state) do
{:noreply, Map.put(state, k, v)}
end
end
मैं वर्तमान प्रक्रिया राज्य का उपयोग प्राप्त कर सकते हैं :sys.get_status/1
iex(1)> {:ok, pid} = KVServer.start
{:ok, #PID<0.119.0>}
iex(2)> KVServer.store(:a, 1)
:ok
iex(3)> KVServer.store(:b, 2)
:ok
iex(4)> {_,_,_,[_,_,_,_,[_,_,{_,[{_,state}]}]]} = :sys.get_status(pid)
...
iex(5)> state
%{a: 1, b: 2}
बस सोच वहाँ अमृत द्वारा प्रदान की एक आसान तरीका एक GenServer
प्रक्रिया के वर्तमान स्थिति प्राप्त करने के लिए है?
धन्यवाद! दस्तावेज में मुझे कैसे याद आया! – sbs