/*2个数据库的事务,后面的根据前面的执行结果再决定要不要跟进(在同一个函数内,分布式)*/
public static void test_db2_tran2()
{
DbContext db = DbConfig.pc_user;
DbContext db2 = DbConfig.pc_base;
//1.建立主事务,并执于
DbTranQueue queue = new DbTranQueue();
//1.建立主事务,并执于
db.tran().join(queue).execute((t) => {
db.sql("insert into test(txt) values(?)", "cc").tran(t).execute();
db.sql("insert into test(txt) values(?)", "dd").tran(t).execute();
db.sql("insert into test(txt) values(?)", "ee").tran(t).execute();
queue.result = 1;
});
//2.根据执行结果判断
if ((int) queue.result == 1) {
//3.执行第二个事务
db2.tran().join(queue).execute((t)=> {
db2.sql("insert into test(txt) values(?)", "gg").tran(t).execute();
});//json(tran) 时,会自动调用 await(true); 当 await(true)时,需要之后的事务来触发或手动触发
}
//4.统一触发事务
queue.complete();
}