我遇到一个问题,可以通过一系列现有的Http请求执行操作,如下所示:
api1() -> api2() -> api3()
或者我将不得不创建一个新的API,它可以立即执行它,例如:
apiNew() {
api1();
api2();
api3();
}
然后我将向apiNew()发送请求并让它完成所有这三个功能。
但是,由于所有三个api都涉及数据库更改,因此每个API都包含一个事务块。
如果我单独调用它,问题就出现了。然后,如果api1()
成功但api2()
失败,则数据库处于某种in the middle
状态,这需要手动更改,因此它可以移动到正确的状态。
我现在的做法是创建apiNew()
并将所有三个包装在同一个事务块中,以便所有数据库更改都在同一个事务下进行。
我只是想知道,是否还有其他方法可以完成此类工作,因此我可以重用api1()
api2()
和api3()
,以便正确处理错误无需将代码重写为单个API调用。