持久性处理程序中持久性参与者的最后序列号

时间:2019-02-07 07:42:05

标签: scala akka akka-persistence

我尝试实现源自三个阶段的快速事件:

  1. 忘却(事件->告诉B)
  2. 如果收到事件并且错过了一些事件,请按其ID重发发送方的事件(A流中的B处理事件)
  3. 按标签的简单流,带有问号模式(A事件->问B)并存储处理后的偏移量。

在理想情况下,第一个(1.)就足够了

情况2. 3.将跳过已经处理的事件

案例3.使用cassandra backstore的速度不是那么快(延迟轮询),因此,如果我们有很多事件,则2.将按需对错过的事件做出反应(在3.赶上此事件之前)。

一切都很好,我可以按某些规则跳过已处理的事件,但是如果我要从头开始重播所有事件,则不正确。因此,我需要在命令中发送并用于 id流from参数的序列号。

我发现lastSequenceNr是持久事件的最大数量(它根据PersistentRepr为persistAll中的每个事件处理程序计算)。因此,如果未使用 persistAsync ,可以将此lastSequenceNr用于持久事件对吗?还是有什么方法可以在持久化处理程序中为持久化事件获取PersistentRepr?

0 个答案:

没有答案