//package com.dhcc.finance.util; // //import java.util.concurrent.TimeUnit; // //import org.slf4j.Logger; //import org.slf4j.LoggerFactory; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.data.redis.core.StringRedisTemplate; //import org.springframework.data.redis.core.ValueOperations; //import org.springframework.stereotype.Component; //import org.springframework.util.StringUtils; // // // ///** // * 功能描述:分布式锁工具类 // * // * @author 17411 // * @date 2018年12月6日 上午9:41:17 @修改日志: // */ //@Component //public class DistributedLockHandler { // // private static final Logger logger = LoggerFactory.getLogger(DistributedLockHandler.class); // private final static long LOCK_EXPIRE = 60 * 1000L;// 单个业务持有锁的时间30s,防止死锁 // // @Autowired // private StringRedisTemplate redisTemplate; // // /** // * 尝试获取全局锁 // * // * @param lock // * 锁的名称 // * @return true 获取成功,false获取失败 // */ // public boolean tryLock(String key) { // return getLock(key, LOCK_EXPIRE); // } // // /** // * 尝试获取全局锁 // * // * @param lock // * 锁的名称 // * @param lockExpireTime // * 锁的过期 // * @return true 获取成功,false获取失败 // */ // public boolean tryLock(String key, long lockExpireTime) { // return getLock(key, lockExpireTime); // } // // /** // * 操作redis获取全局锁 // * // * @param lock // * 锁的名称 // * @param lockExpireTime // * 获取成功后锁的过期时间 // * @return true 获取成功,false获取失败 // */ // public boolean getLock(String key, long lockExpireTime) { // try { // if (StringUtils.isEmpty(key) ) { // return false; // } // if (!redisTemplate.hasKey(key)) { // ValueOperations ops = redisTemplate.opsForValue(); // ops.set(key, key, lockExpireTime, TimeUnit.MILLISECONDS); // return true; // } else {// 存在锁 // logger.error("lock is exist!!!"); // return false; // } // } catch (Exception e) { // logger.error(e.getMessage()); // return false; // } // } // // /** // * 释放锁 // */ // public void releaseLock(String key) { // if (!StringUtils.isEmpty(key)) { // redisTemplate.delete(key); // } // } // //}