AKKA:如何使用BackoffSupervisor提供最大重试次数?

时间:2018-05-28 09:22:41

标签: akka

我想使用 AKKA 使用BackoffSupervisor,具有最大重试次数功能。

我尝试使用以下方法,但是,儿童演员在停止或失败时仍然连续运行:

//approach 1
final Props supervisorProps = BackoffSupervisor.props(
  Backoff.onStop(
    childActor.props(),
    "childrActor",
    Duration.ofSeconds(3),
    Duration.ofSeconds(12),
    0.2)
);   


//approach 2
final Props supervisorProps = BackoffSupervisor.props(
  Backoff.onStop(
    childActor.props(),
      "childrActor",
      Duration.ofSeconds(3),
      Duration.ofSeconds(12),
      0.2)
  .withSupervisorStrategy(
    OneForOneStrategy.apply(
      3,
      Duration.create(12, TimeUnit.SECONDS),
      true,
      DeciderBuilder
        .match(Exception.class, e -> SupervisorStrategy.restart())
        .build()))
  );

1 个答案:

答案 0 :(得分:1)

我可以使用Backoff.onFailure而不是Backoff.onStop来解决这个问题。