【发布时间】:2016-03-07 10:46:05
【问题描述】:
我了解到有状态的 Actor 会在空闲一段时间(默认为 60 分钟)后停用。这将从托管这些参与者的节点中释放 RAM(和 CPU)。但是,它们的状态将保留在集群中,以防需要重新激活。
我想知道是否有可能以某种方式枚举已停用的演员(具有持久状态),以便根据某些自定义标准永久删除其中一些。
这样做的目的是释放集群中的磁盘空间,因为他们知道某些参与者永远不会再次被激活(如果他们愿意,他们会像全新的一样行事)。
作为附带的好处,如果确实可以获得“曾经激活但可能停用”的演员列表,那么我们就不必手动维护这样的列表。
【问题讨论】:
-
如果过期 Actor 的状态不重要,您可能希望使用无状态 Actor 来代替私有变量。
-
在我的场景中,参与者的状态是持久的和可复制的,这一点至关重要。虽然,随着时间的推移,某些参与者的状态将不再用于任何目的,也将不再需要。我希望能够清理那个状态。