在我们的actor系统中,使用分片和持久性,我们的一个ReceivePersistentActor
实现的具体实例在终止(钝化(后不会被重新使用,因为它们表示由为每个新会话生成的GUID标识的客户端会话。
当会话结束时,ReceivePersistentActor
负责清理它自己的持久性数据,并将调用DeleteSnapshots
和DeleteMessages
,这两个操作很好。处理完这些调用后,actor将Context.Parent.Tell(new Passivate(PoisonPill.Instance));
终止。之后,事件日志仍将包含一个EntityStoppedManifest
条目("CD"
(,因为它是通过Passivate
消息生成的。随着时间的推移,这将导致事件日志中保留许多"CD"
条目。
是否有建议的方法来清理此类残留物
也许是一个单独的清洁工演员手动清理这些条目
或者这甚至是我们这边的设计缺陷吗?
看起来我来这里太匆忙了,因为到目前为止,这些事件已经被自动清理了。
最初,这些事件积累如此之多的问题可能是,这些事件是在参与者恢复期间而不是在正常操作期间生成的。但这只是一个假设。