Akka持久性查询具有以下预定义操作:
EventsByPersistenceId EventsByTag CurrentEventsByPersistenceId CurrentEventsByTag AllPersistenceIds
但是,如果我需要获取所有过去的事件,某种CurrentEvents操作怎么办?我无法弄清楚如何在Akka持久性查询术语中实现它。
答案 0 :(得分:2)
我对持久性查询模块不太熟悉,但这些操作都定义了一些akka-streams源。您可以尝试按如下方式组合它们:
def currentEvents(fromSequenceNr: Long, toSequenceNr: Long): Source[EventEnvelope, NotUsed] =
currentPersistenceIds().flatMapConcat(id => currentEventsByPersistenceId(id, fromSequenceNr, toSequenceNr))
(具有并发广度的flatMapMerge
是flatMapConcat
的替代方案,以防您想并行化这一点。