【问题标题】:Akka message orderAkka 消息顺序
【发布时间】:2018-09-29 13:43:38
【问题描述】:

根据 Akka 文档 (Message Delivery Reliability - General Rules),为给定的发送者-接收者对保留消息顺序。 ActorRef.tell(Object msg, ActorRef sender) 方法允许将另一个参与者设置为消息的发送者。所以我的问题是: 谁是发送者-接收者对中的发送者,如果ActorRef.tell 的发送者没有设置为self() 而是设置为另一个actor 的ActorRef,则其顺序被保留?

如果某些未在参与者上下文(例如接口线程)中运行的代码通过ActorRef.tell 向参与者发送消息并将发送者设置为ActorRef.noSender() 或还有其他ActorRef吗?

【问题讨论】:

    标签: java scala akka actor


    【解决方案1】:

    您可以将sender 视为发送线程,而不是发件人ActorRef,因此无论您作为发件人ActorRef 传递什么,消息都将按照您调用tell 的顺序放置在收件箱中线。执行tell 的其他线程可能会以任何方式夹在您线程的tell 调用中,所以这就是sender -> receiver 排序保证所指的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 2015-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多