1
akka-persistence의 PersistenceQuery를 사용하여 물건을 관리하는 액터에 초기 상태를로드합니다. 시작시 정확히 한 번 재생하기를 원하지만 로그에 기록을 계속 보냅니다.저널을 정확히 한 번 읽음
14:11:28.405 [rooms-akka.actor.default-dispatcher-4] DEBUG a.p.q.j.l.LiveEventsByPersistenceIdPublisher - request replay for persistenceId [rooms] from [4] to [9223372036854775807] limit [100]
14:11:28.407 [rooms-akka.actor.default-dispatcher-17] DEBUG a.p.q.j.l.LiveEventsByPersistenceIdPublisher - replay completed for persistenceId [rooms], currSeqNo [4]
14:11:31.376 [rooms-akka.actor.default-dispatcher-17] DEBUG a.p.q.j.l.LiveEventsByPersistenceIdPublisher - request replay for persistenceId [rooms] from [4] to [9223372036854775807] limit [100]
14:11:31.377 [rooms-akka.actor.default-dispatcher-17] DEBUG a.p.q.j.l.LiveEventsByPersistenceIdPublisher - replay completed for persistenceId [rooms], currSeqNo [4]
14:11:34.376 [rooms-akka.actor.default-dispatcher-4] DEBUG a.p.q.j.l.LiveEventsByPersistenceIdPublisher - request replay for persistenceId [rooms] from [4] to [9223372036854775807] limit [100]
14:11:34.378 [rooms-akka.actor.default-dispatcher-4] DEBUG a.p.q.j.l.LiveEventsByPersistenceIdPublisher - replay completed for persistenceId [rooms], currSeqNo [4]
여기는 내가 작성하려고하는 프로그램입니다.
implicit val mat = ActorMaterializer()(context)
val queries = PersistenceQuery(context.system).readJournalFor[LeveldbReadJournal](
LeveldbReadJournal.Identifier)
val src: Source[EventEnvelope, NotUsed] = queries.eventsByPersistenceId("rooms", 0L, Long.MaxValue)
val events: Source[Any, NotUsed] = src.map(_.event)
val future = events.runWith(Sink.foreach{
case x: RoomCreated => process(x)
case x: RoomDeleted => process(x)
case x => logger.error(s"Could not spawn $x")
})
해당 로그 문을 생성하는 코드는 어디에 있습니까? 나는 당신이 왜 쿼리가 여러 번 실행되는 것인가를 이해할 수 있도록 좀 더 많은 코드를 보여줄 필요가 있다고 생각한다. – cmbaxter
한 번 배우기 시작한 배우의 미리 시작 – Haito
이 배우의 여러 인스턴스를 시작 했습니까? 아니면 처리 중에 어딘가에서 일어나는 예외에 대한 응답으로 감독자가 다시 시작 했습니까? – cmbaxter