Mat*_*att 0 erlang elixir erlang-otp
是否有内置方式来查看GenServer的当前状态?你总是可以实现一个简单的调用来返回状态,但是有更通用的方法吗?
当我运行:observer.start时,我可以查看正在运行的应用程序并查看它们的状态,这似乎是可能的.但它可能会做一些双重秘密的Erlang voodoo来实现这一目标.
这取决于你将如何使用它.
如果获取状态是业务逻辑的一部分,那么是 - 这应该在您的应用程序中正确建模GenServer.call以返回状态.
如果您只需要在应用程序的调试/见解方面进行此操作,您可以使用:sys.get_state如下:
iex> :sys.get_state(pid)
# some state printed
Run Code Online (Sandbox Code Playgroud)
请注意,:sys.get_state它将接受pid服务器的任何一个或名称(如果它在一个服务器下注册).
另外,请参阅本节有关:sys Elixir GenServer文档中的模块调试的内容,因为它非常有用.
希望有所帮助!
| 归档时间: |
|
| 查看次数: |
469 次 |
| 最近记录: |