P M*_*cki 5 spring spring-mvc spring-boot
在最简单的Spring(Boot)应用程序中,我会观察到控制器的以下行为
@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")
}
}
Run Code Online (Sandbox Code Playgroud)
即:同步进入lazyDog()是不允许的(从两个浏览器标签调用两次持续20sec),而并发执行lazyDog(),并quickFox()允许(如狗等待,狐狸可以快速执行,说在不同的浏览器选项卡).
应该做些什么来允许并发执行两个或多个调用lazyDog()?
注意:我目前正在通过以下方式启动该应用:
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
我相信您必须通过在单个浏览器(或单个浏览器供应商)中打开两个选项卡来进行测试。您可以尝试同时在不同的两个浏览器供应商(例如 Chrome & IE 或 Chrome & Firefox 等)中访问 URL。
我怀疑它很可能是浏览器特定的并发 HTTP 请求发送到同一主机/url 的实现。
| 归档时间: |
|
| 查看次数: |
364 次 |
| 最近记录: |