Просмотр исходного кода

update Admin.NET/Admin.NET.Core/Service/Cache/SysCacheService.cs.
系统缓存服务增加申请分布式锁

Signed-off-by: Tiger <183328251@qq.com>

Tiger 1 год назад
Родитель
Сommit
c47dd22fd6
1 измененных файлов с 20 добавлено и 1 удалено
  1. 20 1
      Admin.NET/Admin.NET.Core/Service/Cache/SysCacheService.cs

+ 20 - 1
Admin.NET/Admin.NET.Core/Service/Cache/SysCacheService.cs

@@ -22,7 +22,26 @@ public class SysCacheService : IDynamicApiController, ISingleton
         _cacheProvider = cacheProvider;
         _cacheOptions = cacheOptions.Value;
     }
-
+    /// <summary>
+    /// 申请分布式锁
+    /// </summary>
+    /// <param name="key">要锁定的key</param>
+    /// <param name="msTimeout">申请锁等待的时间,单位毫秒</param>
+    /// <param name="msExpire">锁过期时间,超过该时间没有主动是放则自动是放,必须整数秒,单位毫秒</param>
+    /// <param name="throwOnFailure">失败时是否抛出异常,如不抛出异常,可通过判断返回null得知申请锁失败</param>
+    /// <returns></returns>
+    public IDisposable? BeginCacheLock(string key, int msTimeout = 500, int msExpire = 10000, bool throwOnFailure = true)
+    {
+        try
+        {
+            return _cacheProvider.Cache.AcquireLock(key, msTimeout, msExpire, throwOnFailure);
+        }
+        catch
+        {
+            return null;
+        }
+    }
+    
     /// <summary>
     /// 获取缓存键名集合 🔖
     /// </summary>