华为云ASTRO轻应用-华为云Astro轻应用服务编排中涉及数据操作的脚本图元,在其他图元操作失败的情况下,是否可以回滚?

时间:2025-03-11 13:55:41

华为云Astro轻应用服务编排中涉及数据操作的脚本图元,在其他图元操作失败的情况下,是否可以回滚?

如果脚本中涉及数据增/删/改等操作,默认是脚本图元后的图元失败的情况下,脚本中的操作进行回滚。如果脚本中,单独写了独立事务transaction,则不进行回滚。

图1 脚本图元

独立事务的具体写法如下,如果脚本中存在加粗内容,则表示开启了独立事务,即使引用它的服务编排失败,事务操作也不会回滚。

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的结果。

support.huaweicloud.com/astrozero_faq/astrozero_faq_0026.html