1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
//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<String, String> 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);
// }
// }
//
//}