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