package org.jeecg.boot.starter.lock.test;
|
|
import org.junit.Test;
|
import org.junit.runner.RunWith;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.test.context.junit4.SpringRunner;
|
|
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.Executors;
|
import java.util.concurrent.TimeUnit;
|
import java.util.stream.IntStream;
|
|
@RunWith(SpringRunner.class)
|
@SpringBootTest(classes = LockTestApplication.class)
|
public class LockTest {
|
@Autowired
|
LockService lockService;
|
|
/**
|
* 测试分布式锁(模拟秒杀)
|
*/
|
@Test
|
public void test1() throws Exception {
|
ExecutorService executorService = Executors.newFixedThreadPool(6);
|
IntStream.range(0, 30).forEach(i -> executorService.submit(() -> {
|
try {
|
lockService.seckill("20120508784");
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}));
|
executorService.awaitTermination(30, TimeUnit.SECONDS);
|
}
|
|
/**
|
* 测试分布式锁(模拟秒杀)
|
*/
|
@Test
|
public void test2() throws Exception {
|
ExecutorService executorService = Executors.newFixedThreadPool(6);
|
IntStream.range(0, 30).forEach(i -> executorService.submit(() -> {
|
try {
|
lockService.seckill2("20120508784");
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}));
|
executorService.awaitTermination(30, TimeUnit.SECONDS);
|
}
|
|
/**
|
* 测试分布式锁(模拟重复提交)
|
*/
|
@Test
|
public void test3() throws Exception {
|
ExecutorService executorService = Executors.newFixedThreadPool(6);
|
IntStream.range(0, 20).forEach(i -> executorService.submit(() -> {
|
try {
|
lockService.reSubmit("test");
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}));
|
executorService.awaitTermination(30, TimeUnit.SECONDS);
|
}
|
}
|