У меня есть Actor
, который создает детей, используя Router
. Когда один из детей терпит неудачу. Меня уведомляют в стратегии о сбое. Однако 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, что если дочерний элемент Router
завершается, Router
не будет автоматически создавать нового потомка. А также, когда завершаются все дочерние маршрутизаторы, Router
также завершает работу.
Теперь вопрос на миллион долларов: как правильно перезапустить дочерний элемент, порожденный Router
?