Erlang Gen服务器与x27之间的通信;s
我正在使用Erlang OTP框架构建一个网络路由器应用程序 在运行Supervisor的过程中,Supervisor会创建两个GenServer,每个estagen_服务器:call(CurrentProcName,{BinEvent,UniqueTrxId,MdPid},infinity)会闪现到两个单独服务器的tcp连接 现在,在运行应用程序时,一个genserver接收到一个重复的事件,在这种情况下,我希望该事件由第二个genu服务器处理 为此,我正在调用gen_server:call(NextProcName,{BinEvent,UniqueTrxId,MdPid},infinity) 当重复事件的条件满足时,我在gen_服务器模块内调用此函数 NextProcName::它是第二代\u服务器的注册名称 注意::两台gen_服务器的代码保持不变 问题是我能够复制事件,但事件不知何故没有传递到第二代服务器:(Erlang Gen服务器与x27之间的通信;s,erlang,Erlang,我正在使用Erlang OTP框架构建一个网络路由器应用程序 在运行Supervisor的过程中,Supervisor会创建两个GenServer,每个estagen_服务器:call(CurrentProcName,{BinEvent,UniqueTrxId,MdPid},infinity)会闪现到两个单独服务器的tcp连接 现在,在运行应用程序时,一个genserver接收到一个重复的事件,在这种情况下,我希望该事件由第二个genu服务器处理 为此,我正在调用gen_server:call(
请建议我是否以错误的方式进行操作。如果您能分享来源,我们将不胜感激 你确定消息真的收到了还是没有收到回复 我在这里看到的最可能的问题是,您正在以同步方式转发消息。如果不是这样,那么您可以完全忽略我的帖子。现在,让我们看看同步转发的效果:
client server1 server2
| | |
>--- Msg1 ----> (ok) |
(waits S1) | |
(ok) <-- Reply ---< |
>--- Msg2 ----> (ok) |
(waits S1) >----- Msg2 -----> (ok)
(waits S1) (waits S2) <--- Reply --<
(waits S1) (Waits S2) |
*Stuff crashes*
客户端服务器1服务器2
| | |
>---Msg1-->(确定)|
(S1)||
(好)---Msg2-->(好)|
(等待S1)>----Msg2---------->(确定)
(waits S1)(waits S2)你肯定不会给出糟糕的建议:P.我真的很抱歉现在无法共享代码。但我会尽我所能在这个帖子中解释这些条件,作为答案,而不是评论。