我有一个演员层次结构,顶部是WebsocketActor
。
它处理与第三方服务的连接,并具有处理复杂逻辑的n
SessionActor
参与者。
现在,我希望在系统关闭时,每个SessionActor都将其最后一条消息发送给WebsocketActor actor(例如“确定,终止我的会话”)。
但是,由于WebsocketActor的收件箱已停止,因此它无法正常工作。
我尝试了shutdownGracefully()
方法,并且知道Reaper模式,但是不确定是否适合我。
我使用的堆栈是:Akka + Netty和javax.websocket.*;
,用于处理第三方Websocket服务
答案 0 :(得分:0)
akka中没有标准机制可以完全满足您的要求。
您必须自己实现这种“清理”机制。
此机制必须启动,并且非常重要的是必须在启动参与者系统终止之前完成。
尽管可以实现这种机制,但是您可能通常需要重新考虑使用akka。
如果您需要保证系统中邮件的传递,则akka不适合您。它带有“至多一次传递”策略,这意味着不存在用于消息重新传递和确认的内置逻辑。签出message-delivery-reliability。