redission分布式锁
java
@Autowired
RedissonClient redisson;
// 获取锁对象,key 是锁的标识
RLock lock = redisson.getLock("lock_flag");
try {
// 尝试获取锁,最多等待100秒,上锁以后10秒自动解锁
// 无需调用lock.lock(),如果直接这样调用,就是无限等待获取锁
boolean res = lock.tryLock(100, 10, TimeUnit.SECONDS);
if (res) {
try {
// 成功获取锁,执行你的业务代码
System.out.println("执行任务");
} finally {
// 释放锁
lock.unlock();
}
} else {
// 获取锁失败
System.out.println("获取锁失败");
}
} catch (InterruptedException e) {
e.printStackTrace();
}