Example #1
0
        public bool AcquireLock(string key, int timeout)
        {
            var locker = GetLocker(key);

            lockTaken = System.Threading.Monitor.TryEnter(locker, timeout);
            //进程锁获取失败
            if (!lockTaken)
            {
                return(false);
            }

            try
            {
                redisClient = RedisClientProvider.CreateRedisClient(connName);
                redisLocker = new InnerRedisLock(redisClient, key, TimeSpan.FromMilliseconds(timeout));
                return(true);
            }
            catch (Exception ex)
            {
                System.Threading.Monitor.Exit(locker);

                if (redisLocker != null)
                {
                    redisLocker.Dispose();
                }
            }
            return(false);
        }
Example #2
0
 IRedisClient CreateRedisClient()
 {
     return(RedisClientProvider.CreateRedisClient(connName));
 }
 IRedisClient CreateRedisClient()
 {
     return(RedisClientProvider.CreateRedisClient("redisconn"));
 }