2017-03-02 40 views
0

說我有下面的代碼例外:演員SupervisorStrategy:處理的具體童星

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") 

,並說,我只想當演員是一個actor1Dispatcher重新啓動在ConnectionException演員,別的,我只是想要默認運行。這可能嗎?我沒有發現任何東西只在一種類型的兒童演員上運行調度。

回答

0

也許是這樣的?

case ce: ConnectException if sender.path.name=="actor1Dispatcher" => Restart