locker

package module
v0.0.0-...-c1fc9d0 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2023 License: BSD-3-Clause Imports: 7 Imported by: 0

README

ginny-locker

Distributed lock based on redis

Documentation

Index

Constants

This section is empty.

Variables

View Source
var LockerProvider = wire.NewSet(NewLocker, wire.Bind(new(ILocker), new(*Locker)))

LockerProvider

Functions

This section is empty.

Types

type ILocker

type ILocker interface {
	Lock(ctx context.Context, resource string) (*redsync.Mutex, error)
	TryLock(ctx context.Context, resource string, maxExpire, retryDelay time.Duration, tries int) (*redsync.Mutex, error)
	Unlock(ctx context.Context, mutex *redsync.Mutex) (bool, error)
}

ILocker

type Locker

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

Locker

func NewLocker

func NewLocker(ctx context.Context, redis redis.UniversalClient) *Locker

NewLocker

func (*Locker) Lock

func (lock *Locker) Lock(ctx context.Context, resource string) (*redsync.Mutex, error)

Lock

func (*Locker) TryLock

func (lock *Locker) TryLock(ctx context.Context, resource string, maxExpire, retryDelay time.Duration, tries int) (*redsync.Mutex, error)

TryLock

func (*Locker) Unlock

func (lock *Locker) Unlock(ctx context.Context, mutex *redsync.Mutex) (bool, error)

Unlock

Jump to

Keyboard shortcuts

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