Erlang 有没有办法访问GenServer的状态?
是否有一种内置方式可以查看GenServer的当前状态?您总是可以实现一个简单的调用来返回状态,但是有没有更通用的方法Erlang 有没有办法访问GenServer的状态?,erlang,elixir,otp,Erlang,Elixir,Otp,是否有一种内置方式可以查看GenServer的当前状态?您总是可以实现一个简单的调用来返回状态,但是有没有更通用的方法 当我运行:observer.start时,我可以查看正在运行的应用程序并查看它们的状态,因此这似乎是可能的。但它可能是在做一些双重秘密的Erlang伏都教来达到这个目的。这取决于你将如何使用它 如果获取状态是您业务逻辑的一部分,那么是-这应该在应用程序中使用GenServer.call正确建模以返回状态 如果您仅在调试/洞察应用程序时需要此功能,您可以使用以下功能: iex&g
当我运行:observer.start时,我可以查看正在运行的应用程序并查看它们的状态,因此这似乎是可能的。但它可能是在做一些双重秘密的Erlang伏都教来达到这个目的。这取决于你将如何使用它 如果获取状态是您业务逻辑的一部分,那么是-这应该在应用程序中使用
GenServer.call
正确建模以返回状态
如果您仅在调试/洞察应用程序时需要此功能,您可以使用以下功能:
iex> :sys.get_state(pid)
# some state printed
请注意,:sys.get\u state
将接受pid
或服务器名称(如果在其中注册)
另外,请查看Elixir的GenServer
文档,因为它非常有用
希望有帮助 这取决于你将如何使用它 如果获取状态是您业务逻辑的一部分,那么是-这应该在应用程序中使用
GenServer.call
正确建模以返回状态
如果您仅在调试/洞察应用程序时需要此功能,您可以使用以下功能:
iex> :sys.get_state(pid)
# some state printed
请注意,:sys.get\u state
将接受pid
或服务器名称(如果在其中注册)
另外,请查看Elixir的GenServer
文档,因为它非常有用
希望有帮助