gpt4 book ai didi

scala - 如何查看akka死信

转载 作者:行者123 更新时间:2023-12-02 01:06:35 25 4
gpt4 key购买 nike

我创建了一个执行一些基本操作的 Actor,并且似乎工作正常 - 但是我经常在日志中看到以下内容

[INFO] [05/28/2014 14:24:00.673] [application-akka.actor.default-dispatcher-5] [akka://application/deadLetters] Message [akka.actor.Status$Failure] from Actor[akka://application/user/trigger_worker_supervisor#-2119432352] to Actor[akka://application/deadLetters] 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'.

我想实际查看 Failure 的内容,以确定到底是什么引发了 Failure,但我不太清楚如何查看它们。

通读 Akka 文档,它提到了如何禁用日志中的死信警告,但没有提到如何实际编写处理程序来处理它们。

有没有一种简单的方法可以真正捕获发送到死信的任何内容?

最佳答案

正如 @wingedsubmariner 的评论中提到的,您可以订阅主系统 EventStream 上的 DeadLetter 事件,以便在发生死信时收到通知并能够使用react以更定制的方式处理这种情况。为了订阅,代码如下所示:

context.system.eventStream.subscribe(myListenerActorRef, classOf[DeadLetter])

然后,该监听器 Actor 的接收可能如下所示:

def receive = {
case DeadLetter(msg, from, to) =>
//Do my custom stuff here
}

DeadLetter 类的结构是:

case class DeadLetter(message: Any, sender: ActorRef, recipient: ActorRef)

关于scala - 如何查看akka死信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23902900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com