0

私はBackOffアクターで akka 監督を使用しています。アクターがメッセージを受信するたびに、akka デッド レター メッセージが表示されます。以下は私のログです:

[INFO] - [2016-09-16 12:18:53,843] - [akka.actor.LocalActorRef] Message [com.zillion.notification.actors.MyActor$FirebaseRequestLog] from Actor[akka://default/deadLetters] to Actor[akka://default/user/$d/myActorRef#-1537227666] was not delivered. [1] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
[INFO] - [2016-09-16 12:18:53,843] - [akka.actor.LocalActorRef] Message [com.zillion.notification.actors.MyActor$FirebaseRequestLog] from Actor[akka://default/deadLetters] to Actor[akka://default/user/$d/myActorRef#-1537227666] was not delivered. [2] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
[INFO] - [2016-09-16 12:18:53,844] - [akka.actor.LocalActorRef] Message [com.zillion.notification.actors.MyActor$FirebaseRequestLog] from Actor[akka://default/deadLetters] to Actor[akka://default/user/$d/myActorRef#-1537227666] was not delivered. [3] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
[INFO] - [2016-09-16 12:18:53,844] - [akka.actor.LocalActorRef] Message [com.zillion.notification.actors.MyActor$FirebaseRequestLog] from Actor[akka://default/deadLetters] to Actor[akka://default/user/$d/myActorRef#-1537227666] was not delivered. [4] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
[INFO] - [2016-09-16 12:18:53,844] - [akka.actor.LocalActorRef] Message [com.zillion.notification.actors.MyActor$FirebaseRequestLog] from Actor[akka://default/deadLetters] to Actor[akka://default/user/$d/myActorRef#-1537227666] was not delivered. [5] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
[INFO] - [2016-09-16 12:18:53,850] - [akka.actor.LocalActorRef] Message [com.zillion.notification.actors.MyActor$FirebaseRequestLog] from Actor[akka://default/deadLetters] to Actor[akka://default/user/$d/myActorRef#-1537227666] was not delivered. [6] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.

以下は私のBackOffスーパーバイザーコードです:

Props backOffProps = BackoffSupervisor.props(
                Backoff.onFailure(
                        MyActor.props(eventLoggerService),
                        MyActor.BEAN_NAME,
                        Duration.create(3, TimeUnit.SECONDS),
                        Duration.create(1, TimeUnit.MINUTES),
                        0.20
                )
                .withAutoReset(FiniteDuration.apply(10, TimeUnit.SECONDS))
                .withSupervisorStrategy( new OneForOneStrategy(false,
                        match(DatabaseOperationException.class, ex -> {
                            if(ex.getCause() instanceof MongoTimeoutException){
                                return SupervisorStrategy.restart();
                            }else {
                                return SupervisorStrategy.resume();
                            }
                        })
                        .match(Throwable.class, e ->
                                SupervisorStrategy.restart()
                         ).build())
                    ));

        ActorRef backOffActorRef = system.actorOf(backOffProps);
        CompletionStage<Object> myActorFuture = ask(backOffActorRef, BackoffSupervisor.getCurrentChild(),
                Timeout.apply(50, TimeUnit.MILLISECONDS));
        return ((CurrentChild) eventFuture.toCompletableFuture().get(60, TimeUnit.MILLISECONDS)).ref().get();

バックオフはどのように機能し、どのように上記の問題を解決できますか?

4

0 に答える 0