В приведенном ниже фрагменте упрощенного кода, если функциональность приема отключена, он не обрабатывает входящие сообщения, как ожидалось.
package spack
import akka.actor.{Actor, ActorSystem, Props}
import com.typesafe.scalalogging.LazyLogging
object Main extends LazyLogging {
import logger._
def main(args: Array[String]): Unit = {
debug("start of main")
val system = ActorSystem("SampleSystem")
val ref = system.actorOf(Props[SampleActor])
ref ! "Hello"
debug("end of main")
Thread.sleep(Integer.MAX_VALUE)
}
}
class SampleActor extends Actor with LazyLogging {
import logger._
override def receive: Receive = {
case msg => {
debug("now calling handle")
handleMsg(msg)
}
}
def handleMsg(msg1: Any): Receive = {
case msg1 => debug(s"received msg is $msg1")
}
}
Вывод приведенного выше фрагмента кода: -
22:06:17.889 [main] DEBUG spack.Main$ - start of main
22:06:18.569 [main] DEBUG spack.Main$ - end of main
22:06:18.569 [SampleSystem-akka.actor.default-dispatcher-5] DEBUG spack.SampleActor - now calling handle
Я ожидал, что ниже линии также на выходе, но как-то, это не придет.
получено сообщение "Привет"