0

我有一个主管演员,可以创建几个儿童演员。我还定义了一个进行 OneToOne 处理的监督策略:

  override val supervisorStrategy =
    OneForOneStrategy() {
      case _ =>
        logger.info("doing restart")
        Restart
    }

我想知道如何在此重新启动中引入超时,以便在重新启动孩子之前说 5 秒?我没有看到任何 Akka 文档指向我任何可配置的超时。有什么线索吗?我不想拥有 Thread.sleep(...)。这绝对是不合情理的。还有其他建议吗?

4

2 回答 2

1

如何使用以下参数覆盖 OneForOneStrategy:

OneForOneStrategy(maxNrOfRetries = 6, withinTimeRange = 1.minute) {
  ...
  ...
}

这将确保子演员在 1 分钟内仅重新启动 6 次!

于 2016-05-02T16:17:43.590 回答
0

您可以使用配置了最小和最大回退彼此相等的回退监督器。

请注意,有两种不同类型的退避实例。一为onStop一为onFailure。在您的情况下,我将使用它,onFailure因为这是配置为处理异常情况的主管。

于 2016-05-02T13:00:07.780 回答