|
|
|
@@ -18,14 +18,14 @@ func (lock *DistributeLock) Lock(lockKey string, expireTime time.Duration) bool |
|
|
|
} |
|
|
|
|
|
|
|
func (lock *DistributeLock) LockWithWait(lockKey string, expireTime time.Duration, waitTime time.Duration) bool { |
|
|
|
start := time.Now().UnixMilli() |
|
|
|
start := time.Now().Unix() * 1000 |
|
|
|
duration := waitTime.Milliseconds() |
|
|
|
for { |
|
|
|
isOk, _ := redis_client.Setnx(lockKey, "", expireTime) |
|
|
|
if isOk { |
|
|
|
return true |
|
|
|
} |
|
|
|
if time.Now().UnixMilli()-start > duration { |
|
|
|
if time.Now().Unix()*1000-start > duration { |
|
|
|
return false |
|
|
|
} |
|
|
|
time.Sleep(50 * time.Millisecond) |
|
|
|
|