Commit 480e325c by huangfusuper

分布式锁失效

parent f190a138
...@@ -1156,7 +1156,7 @@ public class ApiFlowServiceImpl implements ApiFlowService { ...@@ -1156,7 +1156,7 @@ public class ApiFlowServiceImpl implements ApiFlowService {
try{ try{
RedissLockUtil.lock(flow.getFlowId().toString(), 60); RedissLockUtil.trlock(flow.getFlowId().toString(), 5);
//设置触发时间 //设置触发时间
Long triggerTime = System.currentTimeMillis(); Long triggerTime = System.currentTimeMillis();
......
...@@ -14,7 +14,7 @@ import java.util.List; ...@@ -14,7 +14,7 @@ import java.util.List;
public class RedissonProperties { public class RedissonProperties {
private int timeout = 3000; private int timeout = 60000;
private String address; private String address;
......
...@@ -41,11 +41,15 @@ public class DaemonScanThreadRunHelperRedisLock extends BaseDaemonScanThreadRunH ...@@ -41,11 +41,15 @@ public class DaemonScanThreadRunHelperRedisLock extends BaseDaemonScanThreadRunH
Long sleepTime = 0L; Long sleepTime = 0L;
try{ try{
//加锁 //加锁
RedissLockUtil.lock(lockName,120); boolean trlock = RedissLockUtil.trlock(lockName, 10);
log.debug("------------{},加锁成功,锁名称为{}----------",threadName,lockName); if (trlock) {
dateAligned(CYCLE_INTERVAL,threadName); log.debug("------------{},加锁成功,锁名称为{}----------",threadName,lockName);
//调用业务操作 dateAligned(CYCLE_INTERVAL,threadName);
sleepTime = examplesValue.start(); //调用业务操作
sleepTime = examplesValue.start();
}else {
log.debug("------------{},加锁失败,锁名称为{}----------",threadName,lockName);
}
}catch (Exception e) { }catch (Exception e) {
if(!THREAD_GROUP_STOP){ if(!THREAD_GROUP_STOP){
e.printStackTrace(); e.printStackTrace();
......
...@@ -4,12 +4,6 @@ import java.util.concurrent.TimeUnit; ...@@ -4,12 +4,6 @@ import java.util.concurrent.TimeUnit;
public interface DistributedLocker { public interface DistributedLocker {
/** /**
* 加锁
* @param lockKey
*/
void lock(String lockKey);
/**
* 解锁 * 解锁
* @param lockKey * @param lockKey
*/ */
...@@ -20,7 +14,7 @@ public interface DistributedLocker { ...@@ -20,7 +14,7 @@ public interface DistributedLocker {
* @param lockKey * @param lockKey
* @param timeout * @param timeout
*/ */
void lock(String lockKey, int timeout); boolean trlock(String lockKey, int timeout);
/** /**
* 带单位的超时时间的加锁 * 带单位的超时时间的加锁
...@@ -28,5 +22,5 @@ public interface DistributedLocker { ...@@ -28,5 +22,5 @@ public interface DistributedLocker {
* @param unit * @param unit
* @param timeout * @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 { ...@@ -16,10 +16,6 @@ public class RedissLockUtil {
public static DistributedLocker getRedissLock(){ public static DistributedLocker getRedissLock(){
return RedissLockUtil.redissLock; return RedissLockUtil.redissLock;
} }
public static void lock(String lockKey) {
redissLock.lock(lockKey);
}
public static void unlock(String lockKey) { public static void unlock(String lockKey) {
redissLock.unlock(lockKey); redissLock.unlock(lockKey);
...@@ -30,8 +26,8 @@ public class RedissLockUtil { ...@@ -30,8 +26,8 @@ public class RedissLockUtil {
* @param lockKey * @param lockKey
* @param timeout 超时时间 单位:秒 * @param timeout 超时时间 单位:秒
*/ */
public static void lock(String lockKey, int timeout) { public static boolean trlock(String lockKey, int timeout) {
redissLock.lock(lockKey, timeout); return redissLock.trlock(lockKey, timeout);
} }
/** /**
...@@ -40,7 +36,7 @@ public class RedissLockUtil { ...@@ -40,7 +36,7 @@ public class RedissLockUtil {
* @param unit 时间单位 * @param unit 时间单位
* @param timeout 超时时间 * @param timeout 超时时间
*/ */
public static void lock(String lockKey, TimeUnit unit , int timeout) { public static boolean trlock(String lockKey, TimeUnit unit , int timeout) {
redissLock.lock(lockKey, unit, timeout); return redissLock.trlock(lockKey, unit, timeout);
} }
} }
\ No newline at end of file
package com.byit.util.lock; package com.byit.util.lock;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
...@@ -9,32 +10,41 @@ import java.util.concurrent.TimeUnit; ...@@ -9,32 +10,41 @@ import java.util.concurrent.TimeUnit;
* @author huangfu * @author huangfu
* redis分布式锁 * redis分布式锁
*/ */
@Slf4j
public class RedissonDistributedLocker implements DistributedLocker { public class RedissonDistributedLocker implements DistributedLocker {
private RedissonClient redissonClient; private RedissonClient redissonClient;
@Override @Override
public void lock(String lockKey) {
RLock lock = redissonClient.getLock(lockKey);
lock.lock();
}
@Override
public void unlock(String lockKey) { public void unlock(String lockKey) {
RLock lock = redissonClient.getLock(lockKey); RLock lock = redissonClient.getLock(lockKey);
lock.unlock(); lock.unlock();
} }
@Override @Override
public void lock(String lockKey, int leaseTime) { public boolean trlock(String lockKey, int leaseTime) {
RLock lock = redissonClient.getLock(lockKey); 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 @Override
public void lock(String lockKey, TimeUnit unit ,int timeout) { public boolean trlock(String lockKey, TimeUnit unit ,int timeout) {
RLock lock = redissonClient.getLock(lockKey); 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) { 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