scala - Akka 事件总线 : find unconsumed events in a channel?

标签 scala akka message-queue event-bus

如果 actor 启动并订阅 Akka Event Bus 中的 channel ,actor 有没有办法消费已经发送到该 channel 但未被任何其他 actor 消费的事件?

换句话说,我希望 Actor “收集邮件”。也许事件总线是错误的,我不知道。

最佳答案

如果没有订阅 channel ,消息将发送到 DeadLetter channel 。理论上,您可以编写一个自定义角色并将其订阅到 Deadletter 事件流(查看 DeadLetter 的记录器角色)以跟踪所有未使用的消息。您可以在每个 channel 的 actor 中设置按大小队列(“last n 个消息邮箱”)的限制,并使其监听自定义 channel “邮件”。邮箱队列也可以基于外部持久性(redis、rdbs 等)。您 channel 的每个新订阅者都应检查“邮件” channel 并使用邮件参与者中特定主题队列中的所有消息(如果有)。这在任何启用持久性的代理上模拟常规消息队列。

关于scala - Akka 事件总线 : find unconsumed events in a channel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21818299/

相关文章:

scala - 节流或去抖动方法调用

java - 如何在akka项目java中使用typesafe conf

java - Akka 2.5 和 Slf4j 使用 nashorn 抛出 NPE

message-queue - 大众运输队列维护

java - 如何使用 Channels 和 Scala 并行下载文件?

linux - SublimeREPL scala 错误...同样的错误,但现有的解决方案无法解决问题

java - 如何为 SBT 设置 Java 版本

testing - 测试驱动开发 : Testing ssl

java - JMS主机和JMS服务器之间的区别

Azure 服务总线 : transient errors (exceptions) received through the message pump with built-in retry policy. 为什么?