mysqllock

package
v1.68.0 Latest Latest
Warning

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

Go to latest
Published: Apr 14, 2023 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package mysqllock provides a distributed locking mechanism leveraging MySQL internal functions.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrTimeout is an error when the lock is not acquired within the timeout.
	ErrTimeout = errors.New("acquire lock timeout")

	// ErrFailed is an error when the lock is not acquired.
	ErrFailed = errors.New("failed to acquire a lock")
)

Functions

This section is empty.

Types

type MySQLLock

type MySQLLock struct {
	// contains filtered or unexported fields
}

MySQLLock represents a locker.

func New

func New(db *sql.DB) *MySQLLock

New creates a new instance of the locker.

func (*MySQLLock) Acquire

func (l *MySQLLock) Acquire(ctx context.Context, key string, timeout time.Duration) (ReleaseFunc, error)

Acquire attempts to acquire a database lock.

type ReleaseFunc

type ReleaseFunc func() error

ReleaseFunc is an alias for a release lock function.

Jump to

Keyboard shortcuts

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