Akka Persistence中persist
方法对事件序列的预期用法是什么?我看到有这样的签名here:
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
替换并调用序列变体。使用此方法的预期方式是什么?
感谢。
答案 0 :(得分: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)
}