【发布时间】:2014-05-11 06:43:42
【问题描述】:
我正在尝试在 scala 中实现一个方法,该方法使用 Slick(在同一个数据库事务中)执行几个数据库更新,然后发送几个 akka 消息。发送消息和数据库更新都应该是原子的。在 JEE 世界中,JMS 和 DB(例如 JPA)参与同一个事务并由 JTA 协调,这几乎是透明的。我如何使用 Akka 和 Slick 实现它。示例将非常有益。
【问题讨论】:
-
提交数据库事务后为什么不想发送消息?或者您是否需要在同一事务中执行一些数据库交互作为对该消息的反应?
-
如果我未能发送任何 Akka 消息并返回错误,我需要能够回滚数据库事务。
-
Akka 不提供任何开箱即用的消息传递保证。可以做到(例如使用可靠的代理),但如果您需要这种行为,您可能更适合坚持使用 JaveEE。