Akka-Persistence: как получить снимок

Как мы можем запросить старый снимок в akka-persistence?

Я вижу, что у SnapshotStore есть сообщение LoadSnapshot, которое доступно в частном порядке, но недоступно для других вызовов.

есть интерфейс в snapshotter -> loadSnapshot

но это дает обратный вызов актеру, а это не то, что мне нужно.

  /**
   * Instructs the snapshot store to load the specified snapshot and send it via an [[SnapshotOffer]]
   * to the running [[PersistentActor]].
   */
  def loadSnapshot(persistenceId: String, criteria: SnapshotSelectionCriteria, toSequenceNr: Long) =
    snapshotStore ! LoadSnapshot(persistenceId, criteria, toSequenceNr)

По сути, мне нужен способ ask хранения моментальных снимков, чтобы получить нужный мне снимок.

Есть ли способ сделать это ? Почему он был явно приватным и не вызываемым?


person Kshitij Banerjee    schedule 06.05.2017    source источник


Ответы (1)


Я не думаю, что есть способ явно запросить определенный снимок.

Снимки предлагаются постоянному субъекту во время восстановления в SnapshotOffer сообщениях. По умолчанию актору предлагается последний снимок, но это можно настроить, переопределив recovery и указав пользовательский SnapshotSelectionCriteria. См. также http://doc.akka.io/docs/akka/current/scala/persistence.html#Snapshots

person Arnout Engelen    schedule 16.05.2017