如何从cassandra事件流中获取最后一个事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从cassandra事件流中获取最后一个事件相关的知识,希望对你有一定的参考价值。

我正在阅读一个cassandra事件流,并希望得到最后一个元素。我目前正在这样做:

def myData: Future[Long] =
  readJournal(myPersistenceId)
    .drop(5)
    .take(1)
    .map(l => l.mydata)
    .runWith(Sink.head)

这是有效的,因为我知道我将获得6事件,并获得最后一个我放下5并采取1。但是,我想知道是否有办法做到这一点,我不是硬编码drop(5)take(1)。有没有办法做到这一点,我总是采取最后的事件?

答案

使用Sink.lastSink.lastOption

def myData: Future[Long] =
  readJournal(myPersistenceId)
    .map(_.mydata)
    .runWith(Sink.last)

要么

def myData: Future[Option[Long]] =
  readJournal(myPersistenceId)
    .map(_.mydata)
    .runWith(Sink.lastOption)

以上是关于如何从cassandra事件流中获取最后一个事件的主要内容,如果未能解决你的问题,请参考以下文章

如何从`fromEvent`方法获取最后一个事件

利用Kafka和Cassandra构建实时异常检测实验

如何从 Spark 结构化流中的 Cassandra 等外部存储读取 Kafka 和查询?

从事件流中查找事件的子序列

如何比较流中的每个事件,streamController dart

IOC 控制反转Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 获取 Activity 中的所有方法 | 获取方法上的注解 | 获取注解上的注解 | 通过注解属性获取事件信息 )(代