我正在测试我在Scala中的actor系统中找到我正在处理的一段代码,当我尝试向另一个actor发送消息时,我遇到了问题。
在观察者课程中,我正在运行此代码:
val commander = system.actorOf(PocCommander.props)
commander ! START
在PocCommander课程中我有:
val poller = context.actorOf(PocPollerCrow.props, name = "poller-crow")
poller ! "start"
我可以确认commander成功接收到枚举START,当我在intelliJ中调试时,我可以看到正在创建轮询器。但是,我收到此错误消息:
[INFO] [07/30/2015 10:26:53.797] [MySpec-akka.actor.default-dispatcher-4] [akka:// MySpec / user / poller-crow]消息[java.lang。字符串]从演员[akka:// MySpec / user / $ a#1512757569]到演员[akka:// MySpec / user / poller-crow#-130904114]未送达。 [1]遇到死信。
编辑:根据要求,乌鸦代码
class PocPollerCrow extends BaseCrow {
override def receive: Receive = {
case "start" => println("yay")
case _ => println("nay")
}
object PocPollerCrow {
val props = Props[PocPollerCrow]
}
和指挥官收到代码:
override def receive: Receive = {
case START =>
println("got something yo -> " + START.toString)
start()
case _ =>
}
我还删除了关闭ActorSystem的代码,所以我不再遇到这个问题了。我认为问题是我向演员发送了一条消息,然后很快关闭了系统。