dtm icon indicating copy to clipboard operation
dtm copied to clipboard

请问这种场景应该怎么使用呀?需要根据条件再开启一个事务。

Open dahvlhldle opened this issue 6 months ago • 4 comments

请问这种场景应该怎么使用呀?需要根据条件再开启一个事务。如果这么调用内部会调用2次 tx.Commit()

` barrier, err := dtmgrpc.BarrierFromGrpc(ctx)
	if err != nil {
		return nil, err
	}
	tx := db.Begin()
	sourceTx := tx.Statement.ConnPool.(*sql.Tx)
	return &emptypb.Empty{}, barrier.Call(sourceTx, func(_ *sql.Tx) error {
		return ( tx *gorm.DB)error{
if condition {
msg:=	dtmgrpc.NewMsgGrpc(host, gid)
msg.Add(...)
err := msg.DoAndSubmit(QueryPrepare, func(bb *dtmcli.BranchBarrier) error {
	return bb.Call(sourceTx, func(tx *sql.Tx) error {
		return nil
	})
})
}}()
	})
}`

dahvlhldle avatar Aug 16 '24 10:08 dahvlhldle