Elixir / Horde : DynamicSupervisor.start_child() 被一条神秘的警告消息阻止
Elixir / Horde : DynamicSupervisor.start_child() gets blocked with a cryptic warning message
我使用 Elixir 1.10.1 和 Horde 0.8.3 作为移动和网络应用程序的后端 API。基本上,用户由 UserAgent
,简称 UA(用 GenServer
实现)表示,它在集群中是唯一的,只要存在来自客户端应用程序的至少一个实时连接,它就存在.客户端可以多次连接(phone、平板电脑、网络、家中、工作等);每个连接都用一个ConnectionAgent
表示,简称CA,是唯一的。只要用户没有注销或会话没有过期,CA 就一直存在。基本上,我只有一个唯一的 UA,但我可以有多个 CA。
login
程序需要三个步骤
- 收到 HTTP 登录请求(JSON 内容)后,将调用
login()
控制器。经过一些检查后,它调用 Horde.DynamicSupervisor.start_child(...)
创建并注册一个新的 CA。
- 主管调用
ConnectionAgent.start_link()
,然后用适当的参数调用 GenServer.start_link()
,最终 ConnectionAgent.init()
被调用
- CA 应该创建一个新的 UA 或连接到现有的 UA,因此它调用 `Horde.DynamicSupervisor.start_child(...)
在那一刻,程序冻结,我在控制台中永远收到以下警告消息,我绝对不知道如何处理它们:
[warn] Exit while fetching metrics from AlaaarmApi.DSup.
Skip poll action. Reason: {:timeout, {GenServer, :call, [AlaaarmApi.DSup, :get_telemetry, 5000]}}.
我只是卡住了,所以任何提示都会有所帮助...
我使用 Elixir 1.10.1 和 Horde 0.8.3 作为移动和网络应用程序的后端 API。基本上,用户由 UserAgent
,简称 UA(用 GenServer
实现)表示,它在集群中是唯一的,只要存在来自客户端应用程序的至少一个实时连接,它就存在.客户端可以多次连接(phone、平板电脑、网络、家中、工作等);每个连接都用一个ConnectionAgent
表示,简称CA,是唯一的。只要用户没有注销或会话没有过期,CA 就一直存在。基本上,我只有一个唯一的 UA,但我可以有多个 CA。
login
程序需要三个步骤
- 收到 HTTP 登录请求(JSON 内容)后,将调用
login()
控制器。经过一些检查后,它调用Horde.DynamicSupervisor.start_child(...)
创建并注册一个新的 CA。 - 主管调用
ConnectionAgent.start_link()
,然后用适当的参数调用GenServer.start_link()
,最终ConnectionAgent.init()
被调用 - CA 应该创建一个新的 UA 或连接到现有的 UA,因此它调用 `Horde.DynamicSupervisor.start_child(...)
在那一刻,程序冻结,我在控制台中永远收到以下警告消息,我绝对不知道如何处理它们:
[warn] Exit while fetching metrics from AlaaarmApi.DSup.
Skip poll action. Reason: {:timeout, {GenServer, :call, [AlaaarmApi.DSup, :get_telemetry, 5000]}}.
我只是卡住了,所以任何提示都会有所帮助...