根据Akka文档(Message Delivery Reliability - General Rules),为给定的发送者 - 接收者对保留了消息顺序。 ActorRef.tell(Object msg, ActorRef sender)
方法允许将另一个actor设置为消息的发送者。所以我的问题是:
谁是发送者 - 接收者对中的发送者,如果ActorRef.tell
的发送者未设置为self()
而是设置为另一个参与者的ActorRef,则保留订单?
如果某些代码(未在actor的上下文中运行(例如,接口线程))通过ActorRef.tell
向actor发送消息并将发件人设置为{{},则应用哪种消息顺序保证? 1}}或任何其他ActorRef.noSender()
?
答案 0 :(得分:1)
您可以将sender
视为发送线程,而不是发件人ActorRef
,因此无论您作为发件人ActorRef
传递的是什么,邮件都会按照您的顺序放置在收件箱中在该线程中调用tell
。执行tell
的其他线程可以通过线程的tell
调用以任何方式夹在中间,因此这是sender -> receiver
排序保证所引用的内容。