假设我有以下代码:
override val supervisorStrategy: SupervisorStrategy = {
def defaultDecider: Decider = {
case _: ActorInitializationException => Stop
case _: ActorKilledException => Stop
case ce: ConnectException => {
log.info("ConnectException found. Restarting actor....")
Restart
}
case _: Exception => Stop
}
OneForOneStrategy(maxNrOfRetries = 10, withinTimeRange = Duration.Inf)(defaultDecider)
}
val actor1Dispatcher = context.actorOf(Props[actor1Dispatcher], name = "actor1Dispatcher")
val actor2Dispatcher = context.actorOf(Props[actor2Dispatcher], name = "actor2Dispatcher")
val actor3Dispatcher = context.actorOf(Props[actor3Dispatcher], name = "actor3Dispatcher")如果actor是actor1Dispatcher,我只想在ConnectionException上重新启动该actor,否则,我只想以默认方式运行。这个是可能的吗?我还没有找到任何可以只对一种类型的儿童演员运行调度的东西。
发布于 2017-03-03 14:15:37
也许是这样的?
case ce: ConnectException if sender.path.name=="actor1Dispatcher" => Restarthttps://stackoverflow.com/questions/42545659
复制相似问题