Akka文档说明不扫描邮箱中的邮件。每个消息按照它们到达的顺序依次处理(默认为FIFO)。然而,当我从一个演员发送一个消息到另一个不匹配的接收演员时,它既不会被移动到deadletters actor(它会出现在日志中,我想),也不会阻止处理邮箱中的下一条消息一秒钟后到达,可以正确处理。使用Akka会发生什么不匹配的消息?
发生来自邮箱的不匹配邮件会发生什么情况?
我在sbt中使用了Scala 2.10.4和Akka 2.4-SNAPSHOT。
package main.scala
import akka.actor._
class SRActor(dest: ActorRef) extends Actor with ActorLogging {
dest ! A
dest ! B
context.stop(self)
override def receive = {
case _ => {
log.info("Finally got something")
}
}
}
class SRActorReceiver extends Actor with ActorLogging {
override def receive = {
case B =>
log.info("Finally got B")
}
}
演员创作:
package main.scala
import akka.actor._
case object A
case object B
object ErrorApp extends App {
// SR: Send nowhere received
var system6 = ActorSystem("ErrorActorSystem")
val srActorReceiver = system6.actorOf(Props(classOf[SRActorReceiver]), "sractorreceiver")
val sractor = system6.actorOf(Props(classOf[SRActor], srActorReceiver), "sractor")
// wait until actors have finished
Thread.sleep(1000)
system6.shutdown