parent
c51099fbac
commit
05fe1e20f9
@ -0,0 +1,59 @@
|
||||
package com.hmdp;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@Slf4j
|
||||
@SpringBootTest
|
||||
class RedissonTest {
|
||||
|
||||
@Resource
|
||||
private RedissonClient redissonClient;
|
||||
|
||||
private RLock lock;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
lock = redissonClient.getLock("order");
|
||||
}
|
||||
|
||||
@Test
|
||||
void method1() throws InterruptedException {
|
||||
// 尝试获取锁
|
||||
boolean isLock = lock.tryLock(1L, TimeUnit.SECONDS);
|
||||
if (!isLock) {
|
||||
log.error("获取锁失败 .... 1");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
log.info("获取锁成功 .... 1");
|
||||
method2();
|
||||
log.info("开始执行业务 ... 1");
|
||||
} finally {
|
||||
log.warn("准备释放锁 .... 1");
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
void method2() {
|
||||
// 尝试获取锁
|
||||
boolean isLock = lock.tryLock();
|
||||
if (!isLock) {
|
||||
log.error("获取锁失败 .... 2");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
log.info("获取锁成功 .... 2");
|
||||
log.info("开始执行业务 ... 2");
|
||||
} finally {
|
||||
log.warn("准备释放锁 .... 2");
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in new issue