假设我有一个演员一次向其演员parent
发送一条消息。child
当子进程处理完当前消息后,它会通知父进程它会向子进程发送一条新消息。
为了即使孩子在某个消息上崩溃也能保持这个循环,我向父级添加了一个 SupervisorStrategy :
private static SupervisorStrategy strategy =
new OneForOneStrategy(10, Duration.create("1 minute"),
new Function<Throwable, SupervisorStrategy.Directive>() {
@Override
public SupervisorStrategy.Directive apply(Throwable t) {
if (t instanceof NullPointerException) {
return resume();
} else {
return escalate();
}
}
});
这个想法是,无论孩子发生什么,它都会恢复,并且父母将能够向它发送下一条消息。
但是父母如何知道错误发生的时间,以便发送下一条消息?
孩子发生了什么事,父母的触发因素是什么?
我需要覆盖类似“onChileError”的方法吗?
(将应用 Java over Scala 示例)
谢谢。