在Erlang中,可以发送消息并在我的函数内的下一行代码中等待所需的响应。这使得在单个函数中将工作流逻辑(编排逻辑)组合在一起变得容易。我可以用akka java做同样的事情吗?
似乎所有的回复都会进入onRecieve回调。这意味着我永远不能将我的工作流逻辑放到一个函数中,并且一旦我向演员发送消息,我就需要从另一个函数中获取演员的答案,该函数是onRecieve。这再一次杀死了我的一个函数来改变我的工作流逻辑。是这样的吗?如果是这样,我对akka scala有同样的问题吗?
答案 0 :(得分:2)
不,你不能在Akka中做同样的事情,因为这是最有问题的Erlang功能:它会导致内存泄漏和性能不佳。
但是,您可以:
A)产生一个新的Actor来处理对话逻辑
B)使用ask /?处理回复
C)使用Stash功能避免在满足某些条件之前处理某些消息