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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |