rdlock

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Jul 11, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Dclient

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

func (*Dclient) NewDlock

func (c *Dclient) NewDlock(_ context.Context, key string, expiration time.Duration) (dlock.Dlock, error)

type DclientBuilder

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

func NewDClientBuilder

func NewDClientBuilder(rc redis.Cmdable) *DclientBuilder

func (*DclientBuilder) Build

func (b *DclientBuilder) Build() *Dclient

func (*DclientBuilder) WithRetryStrategy

func (b *DclientBuilder) WithRetryStrategy(strategy retry.Strategy) *DclientBuilder

WithRetryStrategy 指定重试策略

func (*DclientBuilder) WithTimeout

func (b *DclientBuilder) WithTimeout(timeout time.Duration) *DclientBuilder

func (*DclientBuilder) WithValFunc

func (b *DclientBuilder) WithValFunc(valFunc func() string) *DclientBuilder

WithValFunc 指定值生成方法

type Dlock

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

func NewDlock

func NewDlock(client redis.Cmdable, key string, expiration time.Duration, opts ...option.Opt[Dlock]) (*Dlock, error)

func (*Dlock) Refresh

func (l *Dlock) Refresh(ctx context.Context) error

Refresh 刷新锁的过期时间,失败不会重试。

func (*Dlock) TryLock

func (l *Dlock) TryLock(ctx context.Context) error

TryLock 尝试获取分布式锁,当失败时候会根据重试策略进行重试。 默认重试策略为指数退避策略(初始间隔 100ms,最大间隔 1s,最大重试次数 8 次)。

func (*Dlock) Unlock

func (l *Dlock) Unlock(ctx context.Context) error

Unlock 释放锁,失败不会重试。

Jump to

Keyboard shortcuts

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