Akka:currentEventsByPersistenceId 始终为“eventEnvelope.timestamp”返回零

问题描述 投票:0回答:1

我正在尝试使用来自

currentEventsByPersistenceId
akka-persistence-query
查询来检索和处理消息表中存储的事件。但是,我遇到了一个问题,即此查询返回的
EventEnvelope
的时间戳字段值为 0,而不是自 1970-01-01 纪元以来的插入毫秒数。有趣的是,消息表中提供了正确的时间戳,如果我切换到使用
currentEventsByTag
查询而不是
currentEventsByPersistenceId
,我可以成功检索它。

这是我尝试过的示例代码

  1. eventEnvelope.timestamp
    在以下代码中始终返回 0。
val allEvents: Source[Any, NotUsed] = readJournal.currentPersistenceIds.flatMapConcat {
        persistenceId =>
          readJournal
            .currentEventsByPersistenceId(persistenceId, 1, Long.MaxValue)
            .map { eventEnvelope =>
              logger.info(s"timestamp = ${eventEnvelope.timestamp}, PID = ${eventEnvelope.persistenceId}, SEQ = ${eventEnvelope.sequenceNr}")
              // timestamp always returning zero. persistenceId and sequenceNr is printed correctly as in messages table
              eventEnvelope.event
            }
      }
  1. eventEnvelope.timestamp
    根据以下代码中的消息表正确打印。
val tag = "specific-tag"
val allEventsByTag: Source[Any, NotUsed] = readJournal
        .currentEventsByTag(tag, NoOffset)
        .map { eventEnvelope =>
          logger.info(s"timestamp = ${eventEnvelope.timestamp}, PID = ${eventEnvelope.persistenceId}, SEQ = ${eventEnvelope.sequenceNr}")
          // timestamp is printed correctly as per the messages table
          eventEnvelope.event
        }

我是否遗漏了什么或者是一个错误?

akka cqrs event-sourcing lagom akka-persistence
1个回答
0
投票

请问您使用的是哪个akka版本和持久化插件?

© www.soinside.com 2019 - 2024. All rights reserved.