【发布时间】:2014-04-04 18:54:08
【问题描述】:
有什么方法可以确定消息是告诉还是询问?
用例:
我看到了从演员外部使用库并告诉用于消息的情况。因为库会回复成功/失败的结果,但我在使用中并不关心它,我们正在使用 tell 并将消息接收回一个不是演员的上下文。默认情况下,消息会发送到 deadLetters,这很好,但它会记录消息。您可以调整日志记录以关闭消息,但我想知道是否有任何方法可以确定消息是来自库内部的告知还是询问,而无需执行诸如具有特定消息类型的火灾和忘记与询问之类的操作.
【问题讨论】:
-
不能测试 atm 但是,想想
ActorRef.noSender().equals(sender())? -
您可以尝试查看发件人的路径。我认为由 ask 模式创建的临时参与者以 /system 开头,而由您创建的常规参与者将以 /user 开头。我真的不建议使用它,因为我认为这两种方式都不重要,但如果你真的需要它可能会起作用。
-
是的,我考虑过解析演员路径你是正确的,临时演员(例如询问)在临时路径中注册。不过,似乎很难与 Akka 的具体细节结合起来。