华为云ASTRO轻应用-华为云Astro轻应用服务编排中涉及数据操作的脚本图元,在其他图元操作失败的情况下,是否可以回滚?
华为云Astro轻应用服务编排中涉及数据操作的脚本图元,在其他图元操作失败的情况下,是否可以回滚?
如果脚本中涉及数据增/删/改等操作,默认是脚本图元后的图元失败的情况下,脚本中的操作进行回滚。如果脚本中,单独写了独立事务transaction,则不进行回滚。

独立事务的具体写法如下,如果脚本中存在加粗内容,则表示开启了独立事务,即使引用它的服务编排失败,事务操作也不会回滚。
import * as db from 'db'; @userObject(['student__cst']) class Demo{ test():void{ let student = db.object('student__cst'); //进行一些数据库操作 let op =function(): viod{ //进行另外一些数据库操作 }; //op的里面数据库操作是独立事务,与op外面的事务操作相互不影响。 db.transaction(op) } }
使用db.transaction可以将一系列的操作封闭在一个事务中进行,要么全成功,要么全失败。成功与失败不影响外部的操作,外部操作的成功失败也不影响db.transaction的结果。