Akka - как сообщить системе, что делать после достижения максимального количества попыток стратегии?

Предположим, что супервизор определил определенную стратегию:

    private static SupervisorStrategy strategy =
        new OneForOneStrategy(10, Duration.create("1 minute"), DeciderBuilder.
                match(Exception.class, e -> resume()).
                matchAny(o -> escalate()).build());

И скажем, актеру было приказано возобновить работу, но он потерпел неудачу в 11-й раз за текущую продолжительность.

Что происходит?

Является ли родительский актор эскалацией проблемы?

Может ли он теперь как-то упорядоченно остановить актера (например, сказать дочернему актеру закрыть соединение с БД)?

Есть ли другой метод overide для вызова в этом случае?


person t-rex-50    schedule 16.08.2017    source источник
comment
я пробовал deathwatch - от вызова актера выполняйте контекстное наблюдение и передайте актера и обрабатывайте завершенное сообщение, но это также не вызывается, когда превышено максимальное количество повторных попыток.   -  person h.alex    schedule 08.10.2018


Ответы (1)


Супервизор актера может отправить сообщение ребенку, чтобы остановить БД, когда он получил эскалация сообщения от контролируемого субъекта.

person Gábor Bakos    schedule 16.08.2017