/// <summary> /// 释放分布式锁 /// </summary> /// <param name="lockAttr"></param> private void ReleaseLock(DistributedLockAttribute lockAttr) { var lockManager = _serviceProvider.GetService <IDistributedLockManager>(); var lockId = lockAttr.Id; lockManager.ReleaseLock(lockId); }
/// <summary> /// 获取分布式锁 /// </summary> /// <param name="lockAttr"></param> /// <returns></returns> private bool AcquireLock(DistributedLockAttribute lockAttr) { var lockManager = _serviceProvider.GetService <IDistributedLockManager>(); bool acquireResult = false; if (lockAttr.RetryTime == default(int) || lockAttr.WaitTime == default(int)) { acquireResult = lockManager.AcquireLock(lockAttr.Id, TimeSpan.FromMilliseconds(lockAttr.ExpiredTime)); } else { acquireResult = lockManager.AcquireLock(lockAttr.Id, TimeSpan.FromMilliseconds(lockAttr.ExpiredTime), TimeSpan.FromMilliseconds(lockAttr.WaitTime), TimeSpan.FromMilliseconds(lockAttr.RetryTime)); } return(acquireResult); }