如何使用Akka持久性查询检索所有日记事件?

时间:2016-12-29 10:09:30

标签: akka akka-persistence

Akka持久性查询具有以下预定义操作:

EventsByPersistenceId EventsByTag CurrentEventsByPersistenceId CurrentEventsByTag AllPersistenceIds

但是,如果我需要获取所有过去的事件,某种CurrentEvents操作怎么办?我无法弄清楚如何在Akka持久性查询术语中实现它。

1 个答案:

答案 0 :(得分:2)

我对持久性查询模块不太熟悉,但这些操作都定义了一些akka-streams源。您可以尝试按如下方式组合它们:

  def currentEvents(fromSequenceNr: Long, toSequenceNr: Long): Source[EventEnvelope, NotUsed] =
    currentPersistenceIds().flatMapConcat(id => currentEventsByPersistenceId(id, fromSequenceNr, toSequenceNr))

(具有并发广度的flatMapMergeflatMapConcat的替代方案,以防您想并行化这一点。