springboot 接口并发限制(Semaphore)
2021-04-19 本文已影响0人
刘东青_6f21
@RestController
@RequestMapping({"/Test"})
public class test {
private static final Log logger = LogFactory.getLog(test.class);
// 使用 Semaphore 并发限制3个 超过阻塞
private final Semaphore permit = new Semaphore(3, true);
@RequestMapping(value = {"/port"},method = {RequestMethod.POST})
public String portCollect(@RequestBody String in) {
logger.info("in_item=" + in);
String aa = "";
try {
// 获取令牌
permit.acquire();
Thread.sleep(20000);
aa = "222";
} catch (Exception e) {
e.printStackTrace();
} finally {
// 释放令牌
permit.release();
return aa;
}
}
}