清理快照存儲區中的舊快照非常簡單:每次成功快照後,參與者都會收到一個saveSnapshotSuccess
,元數據指示其序列號,該信息可用於構造快照SnapshotSelectionCriteria
,然後送到deleteSnapshots
。Akka持久性:刪除日記中的「舊」消息
然而,對於持久性消息,沒有等同於saveSnapshotSuccess
。因此,不可能知道期刊中「最後一條」消息的序列號。可以保留持續消息的本地緩存計數並將其快照,以用於調用deleteMessages
,但這太枯燥乏味。
是否有使用persistence-query
接收上次持續消息一個演員得到的序列號是什麼的指示,然後也許調用deleteMessages
有說val seqNr = sequenceNumberObtainedFromReadJournal - 100
,(假設我們快照演員的狀態的方式,每50封郵件後說)?
P.S. 傳遞到deleteMessages
的序列號的選擇當然比上面提到的要複雜一點:即使有一種方法可以從日誌中獲取演員的最後一條消息的序列號,但人們不得不擔心這種可能性比如說最後三個快照失敗了,所以它不如使用100和50那麼簡單),所以實現會涉及更多一點,但至少我們不會用持久性序列計數來污染快照類型。