fence

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 29, 2023 License: Apache-2.0 Imports: 12 Imported by: 1

Documentation

Index

Constants

View Source
const (
	// SeataFenceMySQLDriver MySQL driver for fence
	SeataFenceMySQLDriver = "seata-fence-mysql"
)

Variables

This section is empty.

Functions

func DoFence added in v1.2.0

func DoFence(ctx context.Context, tx *sql.Tx) error

DeFence This method is a suspended API interface that asserts the phase timing of a transaction and performs corresponding database operations to ensure transaction consistency case 1: if fencePhase is FencePhaseNotExist, will return a fence not found error. case 2: if fencePhase is FencePhasePrepare, will do prepare fence operation. case 3: if fencePhase is FencePhaseCommit, will do commit fence operation. case 4: if fencePhase is FencePhaseRollback, will do rollback fence operation. case 5: if fencePhase not in above case, will return a fence phase illegal error.

func WithFence

func WithFence(ctx context.Context, tx *sql.Tx, callback func() error) (err error)

WithFence Execute the fence database operation first and then call back the business method

Types

type Config

type Config struct {
	LogTableName string        `yaml:"log-table-name" json:"log-table-name" koanf:"log-table-name"`
	CleanPeriod  time.Duration `yaml:"clean-period" json:"clean-period" koanf:"clean-period"`
}

func (*Config) RegisterFlagsWithPrefix

func (cfg *Config) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet)

RegisterFlagsWithPrefix for Config.

type FenceConn added in v1.2.0

type FenceConn struct {
	TargetConn driver.Conn
	TargetDB   *sql.DB
}

func (*FenceConn) Begin added in v1.2.0

func (c *FenceConn) Begin() (driver.Tx, error)

func (*FenceConn) BeginTx added in v1.2.0

func (c *FenceConn) BeginTx(ctx context.Context, opts driver.TxOptions) (driver.Tx, error)

func (*FenceConn) Close added in v1.2.0

func (c *FenceConn) Close() error

func (*FenceConn) Exec added in v1.2.0

func (c *FenceConn) Exec(query string, args []driver.Value) (driver.Result, error)

func (*FenceConn) ExecContext added in v1.2.0

func (c *FenceConn) ExecContext(ctx context.Context, query string, args []driver.NamedValue) (driver.Result, error)

func (*FenceConn) Prepare added in v1.2.0

func (c *FenceConn) Prepare(query string) (driver.Stmt, error)

func (*FenceConn) PrepareContext added in v1.2.0

func (c *FenceConn) PrepareContext(ctx context.Context, query string) (driver.Stmt, error)

func (*FenceConn) Query added in v1.2.0

func (c *FenceConn) Query(query string, args []driver.Value) (driver.Rows, error)

func (*FenceConn) QueryContext added in v1.2.0

func (c *FenceConn) QueryContext(ctx context.Context, query string, args []driver.NamedValue) (driver.Rows, error)

func (*FenceConn) ResetSession added in v1.2.0

func (c *FenceConn) ResetSession(ctx context.Context) error

type FenceDriver added in v1.2.0

type FenceDriver struct {
	TargetDriver driver.Driver
	TargetDB     *sql.DB
}

func (*FenceDriver) Open added in v1.2.0

func (fd *FenceDriver) Open(name string) (driver.Conn, error)

func (*FenceDriver) OpenConnector added in v1.2.0

func (fd *FenceDriver) OpenConnector(name string) (connector driver.Connector, re error)

type FenceTx added in v1.2.0

type FenceTx struct {
	Ctx           context.Context
	TargetTx      driver.Tx
	TargetFenceTx *sql.Tx
}

func (*FenceTx) Commit added in v1.2.0

func (tx *FenceTx) Commit() error

func (*FenceTx) Rollback added in v1.2.0

func (tx *FenceTx) Rollback() error

type SeataFenceConnector added in v1.2.0

type SeataFenceConnector struct {
	TargetConnector driver.Connector
	TargetDB        *sql.DB
}

func (*SeataFenceConnector) Connect added in v1.2.0

func (connector *SeataFenceConnector) Connect(ctx context.Context) (driver.Conn, error)

func (*SeataFenceConnector) Driver added in v1.2.0

func (connector *SeataFenceConnector) Driver() driver.Driver

Directories

Path Synopsis
store

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL