一个组件BEAUTIFUL
正在使用她的内部akka.actor.Actor
来做某些事情......(例如"表现")
还有其他MAN
组件真的想与之"互动"BEAUTIFUL
当BEAUTIFUL
发现一个MAN
有价值的,在与他"互动"之前,她同意接收他的电话号码(让我们称之为ErrorHandler
),你知道只是给他一个电话,以防他早上离开并在床上忘了他的劳力士茶几
的BEAUTIFUL
虽然是"高维护"(还不都是..),每次有坏事发生内部BEAUTIFUL
内部的演员(例如OmgBrokenNailException
,UglyPurseThrowable
等..),她去螺母,必须完全停止,并呼吁一个MAN
使用该电话号码(如errorHandler.getOnItNowHoney( message, throwable )
)
AKKA主管允许注册两种类型的FaultHandlers => OneForOneStrategy
和AllForOneStrategy
,如果底层Actor覆盖preRestart/postRestart,它可以访问实际的"throwable",例如:
override def preRestart( reason: Throwable ) { // do with throwable... }
Run Code Online (Sandbox Code Playgroud)
问题是这两种策略都会尝试重启Actor,这不是我要找的东西.我正在寻找演员ErrorHandler
用"throwable" 调用外部并停止.
如果我不使用这些策略,当从Actor中抛出异常时,在Actor postStop
上调用a ,这很酷,但它不会引入"throwable":
override def postStop() { // no access to "throwable"... }
Run Code Online (Sandbox Code Playgroud)
帮助实现MAN
这一目标throwable
归档时间: |
|
查看次数: |
716 次 |
最近记录: |