opt:发货区管理接口优化

This commit is contained in:
zhangzq
2024-01-08 17:39:11 +08:00
parent f6f19e73a1
commit eeeffbb708
7 changed files with 711 additions and 23 deletions

View File

@@ -0,0 +1,44 @@
package org.nl.common.utils;
import lombok.SneakyThrows;
import org.nl.modules.wql.util.SpringContextHolder;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.function.Supplier;
/*
* @author ZZQ
* @Date 2023/3/27 10:30
*/
public class RedissonUtils {
/**
*
* @param process 业务代码
* @param key
* @param seconds 尝试获取锁的等待时间,允许为空
*/
@SneakyThrows
public static void lock(Function process, String key, Object param){
RedissonClient redissonClient = SpringContextHolder.getBean(RedissonClient.class);
RLock lock = redissonClient.getLock(key);
boolean isLock;
isLock = lock.tryLock();
try {
if (isLock){
process.apply(param);
} else {
return;
}
}catch (Exception ex){
ex.printStackTrace();
throw ex;
}finally {
if (isLock && lock.isHeldByCurrentThread()){
lock.unlock();
}
}
}
}