加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 如何查看akka死信

发布时间:2020-12-16 09:11:14 所属栏目:安全 来源:网络整理
导读:我创建了一个执行一些基本操作并且看起来正常工作的Actor – 但是我经常看到我的日志中显示以下内容 [INFO] [05/28/2014 14:24:00.673] [application-akka.actor.default-dispatcher-5] [akka://application/deadLetters] Message [akka.actor.Status$Failur
我创建了一个执行一些基本操作并且看起来正常工作的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'.

我想实际查看“失败”的内容,以确定是什么正在引发“失败”,但是我无法弄清楚如何查看它们.

通过Akka文档阅读,它提到如何禁用日志中的死信警告,但不是如何实际写一个处理程序来处理它们.

有没有一个简单的方法来实际捕获发送到死信的东西?

解决方法

如@wingedsubmariner的评论中所提到的,您可以订阅主系统EventStream上的DeadLetter事件,以便在发生死讯时发出通知,并能以更自定义的方式对该情况做出反应.为了订阅,代码将如下所示:

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

然后,该听众演员的收视可能看起来像这样:

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

DeadLetter类的结构是:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读