1

アクターに一度に1 つのメッセージ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 の例を評価します)

ありがとう。

4

2 に答える 2