Versions in this module Expand all Collapse all v0 v0.2.0 Nov 5, 2019 Changes in this version + var DefaultOnceExpiration = 3 * 24 * time.Second + var ErrLocked = errors.New("already locked") + type OnceConfig struct + Expiration time.Duration + UnlockAfterError bool + type OnceOption func(*OnceConfig) + func WithOnceExpiration(d time.Duration) OnceOption + func WithOnceUnlockAfterError() OnceOption v0.1.0 Sep 19, 2019 Changes in this version + var ErrConflict = errors.New("this operation has been proceeded") + func TryLock(conn redis.Conn, key string, expiration time.Duration) error + func Unlock(conn redis.Conn, key string) error + type BackOffFactory interface + Create func(ctx context.Context) backoff.BackOff + var DefaultBackOffFactory BackOffFactory = BackOffFactoryFunc(func() backoff.BackOff { ... }) + var DefaultLockExpiration = 120 * time.Second + type BackOffFactoryFunc func() backoff.BackOff + func (f BackOffFactoryFunc) Create(ctx context.Context) (bo backoff.BackOff) + type Config struct + BackOffFactory BackOffFactory + LockExpiration time.Duration + type Monitor struct + func NewMonitor(pool Pool, opts ...Option) *Monitor + func (m *Monitor) Synchronize(ctx context.Context, key string, do func(context.Context) error) (err error) + type Mutex struct + func NewMutex(pool Pool, key string, opts ...Option) *Mutex + func (m *Mutex) Lock(ctx context.Context) error + func (m *Mutex) Unlock(ctx context.Context) error + type Once struct + func NewOnce(pool Pool, opts ...Option) *Once + func (o *Once) Do(ctx context.Context, key string, f func(context.Context) error) error + type Option func(*Config) + func WithBackOffFactory(f BackOffFactory) Option + func WithLockExpiration(d time.Duration) Option + type Pool interface + GetContext func(context.Context) (redis.Conn, error) + type ScoreFilter struct + func NewScoreFilter(pool Pool, m *Monitor, opts ...Option) *ScoreFilter + func (f *ScoreFilter) Filter(ctx context.Context, key string, score int) (ok bool, err error)