在我的应用程序中,我有一个actor在等待某些操作完成时需要存储消息,同时它需要支持高优先级消息(控制消息)。
存储特征需要Dequeue
类型的邮箱,而我无法找到控制感知的出列邮箱是否有意义。是否可能,如果没有,为什么我不能存储我在演员状态下无法处理的信息?
答案 0 :(得分:1)
我一直在研究这个问题,因为我想获得藏匿行为,但有一些额外的功能。
据我所知,没有充分理由不实施自己的存储策略。您可以将传入的消息存储到优先级队列或任何适合您的目的,然后根据需要处理它们。
我使用'成为'将actor的接收状态更改为存储然后返回处理,选择要继续的最佳消息。
我从Akka的Stash实现中获得的一个警告是,如果你的演员重新开始,你就有机会从演员的状态中恢复任何东西。因此,如果需要,您可以通过注销任何丢失的命令或其他任何您需要执行的操作来处理preRestart。