像 DeadLetterActorRef 一样挂钩
Hooking Akka DeadLetterActorRef
根据 Akka 文档,DeadLetterActorRef
是:
the default implementation of the dead letters service to which Akka routes all messages whose destinations are shut down or non-existent.
如果我想 "tap into" 在 actor 终止后发送死信,我是否只是以某种方式 "hook" 这个 DeadLetterActorRef
让它把它收到的所有东西都传给我?或者我将它子类化?或者我会做一些完全不同的事情吗?无论哪种方式,如何?
您可以在事件流中监听死信事件。像这样:
import akka.actor._
class DeadLetterListener extends Actor {
override def preStart {
context.system.eventStream.subscribe(self, classOf[DeadLetter])
}
override def postStop {
context.system.eventStream.unsubscribe(self)
}
def receive = {
case DeadLetter(msg, from, to) =>
//handle the deadletter here
}
}
根据 Akka 文档,DeadLetterActorRef
是:
the default implementation of the dead letters service to which Akka routes all messages whose destinations are shut down or non-existent.
如果我想 "tap into" 在 actor 终止后发送死信,我是否只是以某种方式 "hook" 这个 DeadLetterActorRef
让它把它收到的所有东西都传给我?或者我将它子类化?或者我会做一些完全不同的事情吗?无论哪种方式,如何?
您可以在事件流中监听死信事件。像这样:
import akka.actor._
class DeadLetterListener extends Actor {
override def preStart {
context.system.eventStream.subscribe(self, classOf[DeadLetter])
}
override def postStop {
context.system.eventStream.unsubscribe(self)
}
def receive = {
case DeadLetter(msg, from, to) =>
//handle the deadletter here
}
}