我有一个Actor
使用Router
. 当其中一个孩子失败时。我在 startegy 中收到有关失败的通知。但是,Actor
它不会自行重新启动。
private static SupervisorStrategy strategy = new OneForOneStrategy(10, Duration.create("1 minute"),
throwable -> {
Directive directive;
if (throwable instanceof SocketTimeoutException) {
directive = SupervisorStrategy.restart();
} else {
directive = SupervisorStrategy.stop();
}
return directive;
});
我还从这篇SO 帖子中发现,如果 a 的孩子Router
终止,Router
则不会自动产生新的孩子。而且,当路由器的所有子节点都终止时,Router
它自己也会终止。
现在是百万美元的问题 - 重新启动由 a 产生的孩子的正确方法是Router
什么?