Компонент BEAUTIFUL
использует свой внутренний akka.actor.Actor
для выполнения определенных действий .. (например, «дразнить»)
Есть и другие компоненты MAN
, которые действительно хотели бы «взаимодействовать» с КРАСИВЫМ
Когда КРАСИВЫЙ
находит достойного ЧЕЛОВЕКА
, прежде чем «взаимодействовать» с ним, она соглашается ввести его номер телефона (назовем его ErrorHandler
), вы знаете, просто чтобы позвонить ему на случай, если он ушел утром и забыл свои часы Rolex на ее прикроватном столике
КРАСИВАЯ
, хотя и требует «больших затрат» (не все ли ..), и каждый раз, когда что-то плохое происходит внутри Внутренний Актер BEAUTIFUL
(например, OmgBrokenNailException
, UglyPurseThrowable
и т. Д.), Она сходит с ума, ей нужно полностью остановиться и c все МУЖЧИНЫ
, использующие этот номер телефона (например, errorHandler.getOnItNowHoney (message, throwable)
)
Супервизоры AKKA позволяют регистрировать два типа FaultHandlers => OneForOneStrategy
и AllForOneStrategy
, где, если основной Актер переопределяет preRestart / postRestart, он получает доступ к фактическому «выбрасываемому», например:
override def preRestart( reason: Throwable ) { // do with throwable... }
Проблема в том, что обе эти стратегии будут пытаться перезапустить Актера (ов), чего я не ищу. Я ищу, чтобы Актер вызвал внешний ErrorHandler
с "throwable" и остановился.
Если я не использую эти стратегии, когда исключение генерируется внутри Актера, для Актера вызывается postStop
, что неплохо, но не принимает "throwable":
override def postStop() { // no access to "throwable"... }
Помогите MAN
получить этот throwable