【发布时间】:2015-11-13 05:02:07
【问题描述】:
我正在尝试使用演员选择向演员发送消息。但它不断收到死信。 这就是actor的创建方式(使用激活器模板)
class PongActor extends Actor with ActorLogging {
import PongActor._
def receive = {
case PingActor.PingMessage(text) =>
log.info("In PongActor - received message: {}", text)
sender() ! PongMessage("pong")
}
}
object PongActor {
val props = Props[PongActor]
case class PongMessage(text: String)
}
这是发送演员:
class PingActor extends Actor with ActorLogging {
import PingActor._
var counter = 0
val pongActor = context.actorOf(PongActor.props, "pongActor")
val tester = context.actorSelection("../pongActor") //getting the actor by name using the actorSelection
def receive = {
case Initialize =>
log.info("In PingActor - starting ping-pong")
tester.tell(PingMessage("ping"),self)//going to dead letters
tester ! PingMessage("ping")//also going to dead letters
case PongActor.PongMessage(text) =>
log.info("In PingActor - received message: {}", text)
counter += 1
if (counter == 3) context.system.shutdown()
else sender() ! PingMessage("ping")
}
}
object PingActor {
val props = Props[PingActor]
case object Initialize
case class PingMessage(text: String)
}
为什么消息会到达死信
如何验证演员确实存在?
【问题讨论】: