Commit 480e325c by huangfusuper

分布式锁失效

parent f190a138
......@@ -1156,7 +1156,7 @@ public class ApiFlowServiceImpl implements ApiFlowService {
try{
RedissLockUtil.lock(flow.getFlowId().toString(), 60);
RedissLockUtil.trlock(flow.getFlowId().toString(), 5);
//设置触发时间
Long triggerTime = System.currentTimeMillis();
......
......@@ -14,7 +14,7 @@ import java.util.List;
public class RedissonProperties {
private int timeout = 3000;
private int timeout = 60000;
private String address;
......
......@@ -41,11 +41,15 @@ public class DaemonScanThreadRunHelperRedisLock extends BaseDaemonScanThreadRunH
Long sleepTime = 0L;
try{
//加锁
RedissLockUtil.lock(lockName,120);
log.debug("------------{},加锁成功,锁名称为{}----------",threadName,lockName);
dateAligned(CYCLE_INTERVAL,threadName);
//调用业务操作
sleepTime = examplesValue.start();
boolean trlock = RedissLockUtil.trlock(lockName, 10);
if (trlock) {
log.debug("------------{},加锁成功,锁名称为{}----------",threadName,lockName);
dateAligned(CYCLE_INTERVAL,threadName);
//调用业务操作
sleepTime = examplesValue.start();
}else {
log.debug("------------{},加锁失败,锁名称为{}----------",threadName,lockName);
}
}catch (Exception e) {
if(!THREAD_GROUP_STOP){
e.printStackTrace();
......
......@@ -4,12 +4,6 @@ import java.util.concurrent.TimeUnit;
public interface DistributedLocker {
/**
* 加锁
* @param lockKey
*/
void lock(String lockKey);
/**
* 解锁
* @param lockKey
*/
......@@ -20,7 +14,7 @@ public interface DistributedLocker {
* @param lockKey
* @param timeout
*/
void lock(String lockKey, int timeout);
boolean trlock(String lockKey, int timeout);
/**
* 带单位的超时时间的加锁
......@@ -28,5 +22,5 @@ public interface DistributedLocker {
* @param unit
* @param timeout
*/
void lock(String lockKey, TimeUnit unit , int timeout);
boolean trlock(String lockKey, TimeUnit unit , int timeout);
}
\ No newline at end of file
......@@ -16,10 +16,6 @@ public class RedissLockUtil {
public static DistributedLocker getRedissLock(){
return RedissLockUtil.redissLock;
}
public static void lock(String lockKey) {
redissLock.lock(lockKey);
}
public static void unlock(String lockKey) {
redissLock.unlock(lockKey);
......@@ -30,8 +26,8 @@ public class RedissLockUtil {
* @param lockKey
* @param timeout 超时时间 单位:秒
*/
public static void lock(String lockKey, int timeout) {
redissLock.lock(lockKey, timeout);
public static boolean trlock(String lockKey, int timeout) {
return redissLock.trlock(lockKey, timeout);
}
/**
......@@ -40,7 +36,7 @@ public class RedissLockUtil {
* @param unit 时间单位
* @param timeout 超时时间
*/
public static void lock(String lockKey, TimeUnit unit , int timeout) {
redissLock.lock(lockKey, unit, timeout);
public static boolean trlock(String lockKey, TimeUnit unit , int timeout) {
return redissLock.trlock(lockKey, unit, timeout);
}
}
\ No newline at end of file
package com.byit.util.lock;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
......@@ -9,32 +10,41 @@ import java.util.concurrent.TimeUnit;
* @author huangfu
* redis分布式锁
*/
@Slf4j
public class RedissonDistributedLocker implements DistributedLocker {
private RedissonClient redissonClient;
@Override
public void lock(String lockKey) {
RLock lock = redissonClient.getLock(lockKey);
lock.lock();
}
@Override
public void unlock(String lockKey) {
RLock lock = redissonClient.getLock(lockKey);
lock.unlock();
}
@Override
public void lock(String lockKey, int leaseTime) {
public boolean trlock(String lockKey, int leaseTime) {
RLock lock = redissonClient.getLock(lockKey);
lock.lock(leaseTime, TimeUnit.SECONDS);
boolean lockFlag = false;
try {
lockFlag = lock.tryLock(leaseTime, TimeUnit.SECONDS);
} catch (InterruptedException e) {
log.error("-----------------{}------------",e.getMessage());
Thread.currentThread().interrupt();
}
return lockFlag;
}
@Override
public void lock(String lockKey, TimeUnit unit ,int timeout) {
public boolean trlock(String lockKey, TimeUnit unit ,int timeout) {
RLock lock = redissonClient.getLock(lockKey);
lock.lock(timeout, unit);
boolean lockFlag = false;
try {
lockFlag = lock.tryLock(timeout, unit);
} catch (InterruptedException e) {
log.error("-----------------{}------------",e.getMessage());
Thread.currentThread().interrupt();
}
return lockFlag;
}
public void setRedissonClient(RedissonClient redissonClient) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment