首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Actor SupervisorStrategy:处理特定子Actor的异常

Actor SupervisorStrategy:处理特定子Actor的异常
EN

Stack Overflow用户
提问于 2017-03-02 10:17:28
回答 1查看 69关注 0票数 0

假设我有以下代码:

代码语言:javascript
复制
  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,否则,我只想以默认方式运行。这个是可能的吗?我还没有找到任何可以只对一种类型的儿童演员运行调度的东西。

EN

回答 1

Stack Overflow用户

发布于 2017-03-03 14:15:37

也许是这样的?

代码语言:javascript
复制
case ce: ConnectException if sender.path.name=="actor1Dispatcher" => Restart
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42545659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档