在另一个持久化事件处理程序中调用持久化
Invoke persist inside another persist event handler
我有一些代码可以从另一个持久化事件处理程序中调用持久化,例如:
persist(someClassInstance){ message =>
confirmDelivery(message.id)
//some code
start()
}
//Somewhere else in the code
def start(): Unit = {
log.info("Starting")
persist(someClassInstance){ message =>
deliver(destination, createMessage)
log.info("Started")
}
}
当我 运行 我的应用程序时,我看到日志消息 "Starting" 但我从未看到 "Started"。我想知道这是否会发生,因为我在另一个持久性中调用持久性。这是不该做的事吗?文档对这种情况不是很明确。
我使用的是 Akka 2.4-M1 版,所以我想这可能是问题的根源,但对我来说更有可能是不应该这样做。
从另一个 persist 调用 persist 将阻止程序。
正确的方法是给自己发消息。然后在处理该消息的代码中执行持久化。
我有一些代码可以从另一个持久化事件处理程序中调用持久化,例如:
persist(someClassInstance){ message =>
confirmDelivery(message.id)
//some code
start()
}
//Somewhere else in the code
def start(): Unit = {
log.info("Starting")
persist(someClassInstance){ message =>
deliver(destination, createMessage)
log.info("Started")
}
}
当我 运行 我的应用程序时,我看到日志消息 "Starting" 但我从未看到 "Started"。我想知道这是否会发生,因为我在另一个持久性中调用持久性。这是不该做的事吗?文档对这种情况不是很明确。
我使用的是 Akka 2.4-M1 版,所以我想这可能是问题的根源,但对我来说更有可能是不应该这样做。
从另一个 persist 调用 persist 将阻止程序。 正确的方法是给自己发消息。然后在处理该消息的代码中执行持久化。