当前位置: 首页 > 知识库问答 >
问题:

akka演员中forward和tell的区别

萧玮
2023-03-14

tell和forward之间有什么区别,万一我会发送同样的消息:

case msg: Message =>
  otherActor tell (msg,sender)
case msg: Message =>
  otherActor forward msg

共有1个答案

陈开宇
2023-03-14

接收端的发送者()将不同。


消息使用tell(也称为)发送:

A消息M告知B
b将该消息告知c
C认为消息M发送方()B

值得指出的是,当使用tell显式设置邮件的发件人时,您可以实现与forward相同的效果,但这不是典型的Akka风格:

// inside `B`, when received `msg` from `A`
C tell (msg, A) 
      == 
C forward msg

有关更多信息,请参阅关于Forward的文档。

 类似资料:
  • 我很想知道调整大小,或者在本例中增加单个节点系统上的actor池中actor的数量是否真的会影响性能。 我有一个带超线程的四核系统。在任何给定的点上,系统可以运行8个线程。假设执行元执行的大多数操作都是CPU绑定的,那么将池中的执行元数量从20个增加到40个会有什么收获呢?

  • [04/27/2014 18:09:05.518][ReadScheduler-Akka.actor.Default-Dispatcher-3][Akka://ReadScheduler/User/Collector]从参与者[Akka://ReadScheduler/User/Executor#2127791644]到参与者[Akka://ReadScheduler/User/Collector

  • 我从这里得到上面的错误消息: 特别是从第二行。。进口是 akka版本是2.2.1,scala是2.10.2,我正在使用sbt 0.13来构建它。 编辑:我用 结果如下:

  • 我很难理解Akka中的演员,以及一个线索如何与一个演员相关联。 让我们以Fridge Actor和Person Actor向Fridge Actor引用发送GetFoodMessage为例。假设不变性受到尊重。 这些消息是在不同的线程中“同时”处理,还是在队列中一个接一个地处理? 线程产卵是否完全由库管理并从actor的概念中抽象出来? 参与者引用是参与者的实例吗? 当我阻止一个演员(和他的孩子)

  • 让我们假设一个使用Akka Typed实现的应用程序有一个持久执行元。这个持久执行元作为其操作的一部分创建了瞬态(或非持久)子执行元,每个子执行元都有一个唯一的ID,这些ID是持久状态的一部分。持久执行元还需要一些与其子级通信的方式,但我们不希望持久化子级的,因为它们实际上不是状态的一部分。在恢复时,持久参与者应该基于恢复的状态重新创建它的子级。这听起来并不像是一个很不寻常的用例,我正在试图弄清楚

  • java.util.concurrent.CompletionException:Akka.Pattern.AskTimeoutException:收件人[Actor[akka:/web_server/user/MyActor#-769383443]]已终止。发送者[null]发送了类型为“com.data.model.request”的消息。 所以我重写了方法,在那里添加了一个log语句。 现在