dislock

package module
v0.0.8 Latest Latest
Warning

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

Go to latest
Published: Aug 6, 2024 License: MIT Imports: 10 Imported by: 0

README

go-distributed-lock

  • golang 实现的基于GRPC的分布式锁

使用方法

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewLockServiceClient

func NewLockServiceClient(serverAddr string) service.LockServiceClient

Types

type Lock

type Lock struct {
	RetryMillisecondDur int // 尝试加锁的时间间隔 单位毫秒
	RetryMaxTimes       int // 最大加锁失败次数,超过后将强制释放锁,然后再枷锁。因为某个节点可能在加锁未释放的情况下异常退出. 如果设置为0,加不到锁就一直阻塞
	Lk                  service.LockServiceClient
}

func NewLock

func NewLock(ServerAddr string, retryMillisecondDur, retryMaxTimes int) *Lock

func (*Lock) ForceLock added in v0.0.6

func (l *Lock) ForceLock(lockName, clientId string) (bool, error)

ForceLock

lockName 必选参数,锁的名称,可根据业务使用多种锁 clientId 必选参数,加锁的节点ID,分布式的每个节点ID必须唯一

func (*Lock) ForceUnLock

func (l *Lock) ForceUnLock(lockName string) (bool, error)

ForceUnLock

lockName 必选参数,锁的名称,可根据业务使用多种锁

func (*Lock) Lock

func (l *Lock) Lock(lockName, clientId string) (bool, int, error)

Lock

lockName 必选参数,锁的名称,可根据业务使用多种锁 clientId 必选参数,加锁的节点ID,分布式的每个节点ID必须唯一

func (*Lock) UnLock

func (l *Lock) UnLock(lockName, clientId string) (bool, int, error)

UnLock

lockName 必选参数,锁的名称,可根据业务使用多种锁 clientId 必选参数,加锁的节点ID,分布式的每个节点ID必须唯一

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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