This commit is contained in:
oneao committed 2026-04-24 22:37:52 +08:00
1 parent 46cbb2f50d
commit e3d765a9d4
15 files changed
+903 -190

No files matched your search

+14 -10
View File
@@ -2,12 +2,10 @@ package db
import (
"context"
"github.com/jackc/pgx/v5"
)
// WithTx 开启事务(在当前 client 上)
func (c *Client) WithTx(ctx context.Context, fn func(tx *Client) error) error {
tx, err := c.pool.Begin(ctx)
if err != nil {
return err
@@ -19,16 +17,22 @@ func (c *Client) WithTx(ctx context.Context, fn func(tx *Client) error) error {
tx: tx,
}
defer func(tx pgx.Tx, ctx context.Context) {
err := tx.Rollback(ctx)
if err != nil {
}
}(tx, ctx)
// rollback 兜底(防 panic / 提前 return)
defer func() {
_ = tx.Rollback(ctx)
}()
// 执行业务
if err := fn(txClient); err != nil {
_ = tx.Rollback(ctx)
return err
}
return tx.Commit(ctx)
// commit
if err := tx.Commit(ctx); err != nil {
_ = tx.Rollback(ctx)
return err
}
return nil
}