我正在尝试使用来自
currentEventsByPersistenceId
的 akka-persistence-query
查询来检索和处理消息表中存储的事件。但是,我遇到了一个问题,即此查询返回的 EventEnvelope
的时间戳字段值为 0,而不是自 1970-01-01 纪元以来的插入毫秒数。有趣的是,消息表中提供了正确的时间戳,如果我切换到使用 currentEventsByTag
查询而不是 currentEventsByPersistenceId
,我可以成功检索它。
这是我尝试过的示例代码
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
}
}
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版本和持久化插件?