Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Erlang Gen服务器与x27之间的通信;s_Erlang - Fatal编程技术网

Erlang Gen服务器与x27之间的通信;s

Erlang Gen服务器与x27之间的通信;s,erlang,Erlang,我正在使用Erlang OTP框架构建一个网络路由器应用程序 在运行Supervisor的过程中,Supervisor会创建两个GenServer,每个estagen_服务器:call(CurrentProcName,{BinEvent,UniqueTrxId,MdPid},infinity)会闪现到两个单独服务器的tcp连接 现在,在运行应用程序时,一个genserver接收到一个重复的事件,在这种情况下,我希望该事件由第二个genu服务器处理 为此,我正在调用gen_server:call(

我正在使用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_服务器的代码保持不变

问题是我能够复制事件,但事件不知何故没有传递到第二代服务器:(


请建议我是否以错误的方式进行操作。

如果您能分享来源,我们将不胜感激

你确定消息真的收到了还是没有收到回复

我在这里看到的最可能的问题是,您正在以同步方式转发消息。如果不是这样,那么您可以完全忽略我的帖子。现在,让我们看看同步转发的效果:

 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.我真的很抱歉现在无法共享代码。但我会尽我所能在这个帖子中解释这些条件,作为答案,而不是评论。