有时发送给参与者的消息没有发送者,例如,如果它们是这样发送的:
actorRef.tell(Message(...), Actor.noSender)
一个用例是表明您对对此的响应不感兴趣Message
。
在演员的receive
方法中,我如何检查是否sender()
是演员,反对noSender
?
我想出的最好的方法是基于参与者路径的以下测试,但我不确定我是否可以依靠它在所有情况下和未来的变化、Akka 集群等中工作。
if(sender.path.elements != "deadLetters" :: Nil) ...
如果没有发件人,我不希望回复转到deadLetters
,因为在我的系统中,我将未送达的消息视为出现问题的警告。
有没有更好更可靠的方法来检查是否有发件人?