在最简单的Spring(Boot)应用程序中,我观察到控制器的以下行为,比如说
UPDATE table1
SET HH_NUM = (SELECT MAX(p.ROW_NUM) FROM table1 p WHERE p.REL = 0 and p.row_num < h.row_num )
FROM table1 h
WHERE h.HH_NUM = 0
即:不允许并发进入@CrossOrigin
@RestController
public class MyController {
//...
@RequestMapping(value = {"/lazy-dog"})
@ResponseBody
public Rest lazyDog() {
//...
Thread.sleep(10000);
//
return Message("Dog exiting")
}
@RequestMapping(value = {"/quick-fox"})
@ResponseBody
public Rest quickFox() {
//...
return Message("Fox exiting")
}
}
(从两个浏览器标签中调用两次持续lazyDog()
),同时允许同时执行20sec
和lazyDog()
(当狗等待时,狐狸可以快速执行,例如在单独的浏览器选项卡中)。
应该做些什么才能同时执行两次或多次quickFox()
的调用?
注意:我目前正在通过以下方式启动该应用:
lazyDog()
答案 0 :(得分:4)
我相信您必须通过在单个浏览器(或单个浏览器供应商)中打开两个选项卡进行测试。您是否可以尝试同时访问不同的两个浏览器供应商(例如Chrome&amp; IE或Chrome&amp; Firefox等)中的网址。
我怀疑它很可能是浏览器特定的同时发送到同一主机/网址的HTTP请求的实现。