我想使用 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()))
);
答案 0 :(得分:1)
我可以使用Backoff.onFailure而不是Backoff.onStop来解决这个问题。