0

persistAkka Persistence 中的方法对事件序列的预期用途是什么?我看到这里有这样的签名

final def persist[A](events: Seq[A])(handler: (A) ⇒ Unit): Unit

但是如果我尝试像下面的例子那样调用它

def receiveCommand= {
  case x ⇒
    val events = Seq(Event("1"), Event("2"))
    persist(events) {
      e ⇒ println(e) // here it gets printed "List(Event(1),Event(2))"
    }
}

我将一个事件打印为List(Event(1),Event(2)). 也就是说,我希望按照给定的顺序分别处理每个事件。但相反,它似乎在以下persist变体中

final def persist[A](event: A)(handler: (A) ⇒ Unit): Unit

类型参数A被替换为Seq[Event]而不是被替换Event并调用序列变体。使用此方法的预期方法是什么?

谢谢。

4

1 回答 1

2

意识到

  final def persist[A](events: Seq[A])(handler: (A) ⇒ Unit): Unit

需要一个

  scala.collection.immutable.Seq

作为参数,所以你必须传入这个具体的 Seq 类型:

 val events: scala.collection.immutable.Seq = scala.collection.immutable.Seq("event")   
 persist(events) { event =>
     log.debug("persisted " + event) 
 }
于 2015-03-25T06:22:54.490 回答