Akka Event Bus:在频道中查找未使用的事件?

时间:2014-02-16 23:32:12

标签: scala akka message-queue event-bus

如果演员开始并订阅Akka事件总线中的频道,演员是否有任何方式消耗已发送到频道但未被其他演员消费的事件?

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

1 个答案:

答案 0 :(得分:4)

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