0

在我们的参与者系统中,使用分片和持久性,我们的一个实现的具体实例ReceivePersistentActor一旦被终止(钝化)就不会被重新使用,因为它们代表由为每个新会话生成的 GUID 标识的客户端会话。

当会话结束时,ReceivePersistentActor负责清理它自己的持久性数据并调用DeleteSnapshotsand DeleteMessages,它工作正常。一旦处理了这些调用,actor 将Context.Parent.Tell(new Passivate(PoisonPill.Instance));终止。之后,事件日志仍将包含一个EntityStoppedManifest条目 ( "CD"),因为这是通过Passivate消息生成的。随着时间的推移,这将导致许多"CD"条目留在事件日志中。

是否有清理此类残留条目的推荐方法?
也许是一个单独的看门人演员手动清理这些条目?
或者这甚至是我们的设计缺陷?

4

1 回答 1

0

看来我来的太仓促了,这些事件到现在都已经自动清理干净了。

这些事件累积如此之多的问题可能首先是这些事件是在actor恢复期间而不是在正常操作期间生成的。但这只是一个假设。

于 2021-12-06T13:27:36.863 回答