1、新增Redis分布式锁;

pull/50/head
xuguang.chen 5 years ago
parent dc83ba0356
commit 9b37acb26f

@ -36,6 +36,7 @@
<minio.version>8.0.3</minio.version> <minio.version>8.0.3</minio.version>
<poi.version>4.1.2</poi.version> <poi.version>4.1.2</poi.version>
<common-pool.version>2.6.2</common-pool.version> <common-pool.version>2.6.2</common-pool.version>
<redisson.version>3.14.1</redisson.version>
</properties> </properties>
<!-- 依赖声明 --> <!-- 依赖声明 -->
@ -214,6 +215,13 @@
<version>${ruoyi.version}</version> <version>${ruoyi.version}</version>
</dependency> </dependency>
<!-- Redisson锁 -->
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.14.0</version>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>

@ -23,6 +23,11 @@
<artifactId>spring-boot-starter-data-redis</artifactId> <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
</dependency>
<!-- RuoYi Common Core--> <!-- RuoYi Common Core-->
<dependency> <dependency>
<groupId>com.ruoyi</groupId> <groupId>com.ruoyi</groupId>

@ -0,0 +1,64 @@
package com.ruoyi.common.redis.service;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;
/**
* redis
*
* @author Mask
*/
@Component
public class RedisLock
{
@Autowired
private RedissonClient redissonClient;
/**
*
* @param lockKey
* @return
*/
public RLock getLock(String lockKey)
{
return redissonClient.getLock(lockKey);
}
/**
*
* @param rLock
* @param waitTime false
* @return
* @throws InterruptedException
*/
public boolean tryLock(RLock rLock, long waitTime) throws InterruptedException
{
return rLock.tryLock(waitTime, TimeUnit.SECONDS);
}
/**
*
* @param rLock
* @param waitTime false
* @param releaseTime releaseTime
* @return
* @throws InterruptedException
*/
public boolean tryAutoReleaseLock(RLock rLock, long waitTime, long releaseTime) throws InterruptedException
{
return rLock.tryLock(waitTime, releaseTime, TimeUnit.SECONDS);
}
/**
*
*/
public void unlock(RLock rLock)
{
rLock.unlock();
}
}

@ -1,5 +1,6 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.ruoyi.common.redis.configure.RedisConfig,\ com.ruoyi.common.redis.configure.RedisConfig,\
com.ruoyi.common.redis.service.RedisService com.ruoyi.common.redis.service.RedisService,\
com.ruoyi.common.redis.service.RedisLock

Loading…
Cancel
Save