【发布时间】:2016-09-02 18:17:51
【问题描述】:
我正在使用 Slick 3.1.1,我想在 Slick 事务上实现我自己的东西。
def findSomeProducts = table.getSomeProducts() //db operation
def productTableUpdate = doSomeStuff1() //db operation
def priceTableUpdate = doSomeStuff2() //db operation
def updateElasticCache = updateIndexOfProduct() //this is not a database operation
我有这些示例函数。首先,我从 db 获得了一些产品,并且在我更新了表格之后。最后我需要运行 updateElasticCache 方法。如果 updateElasticCache 方法失败,我想回滚整个数据库进程。
我无法使用
(for { ... } yield ()).transactionally 这个代码,因为它不适用于我的情况。这个“事务性”正在等待数据库操作。但我想添加另一个不是数据库进程的功能。
有可能吗?我怎样才能实现它?
【问题讨论】: