我写了 spring rest 异步控制器,它返回字符串 JSON 响应,当我请求浏览器完成响应时,而控制器还没有完成处理,因此响应还没有准备好。
我使用 Spring Boot、Apache 作为内置服务器。在 EmbeddedServletContainerFactory 我也设置了 AsyncTimeout。
TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
connector.setAsyncTimeout(10000000);
}
});
那么我如何让浏览器等待控制器异步完成响应?
控制器是
@Async
@RequestMapping(value = "/id", method = RequestMethod.GET)
public String getDetails(@PathVariable("id") String id) {
// wrote logic for JSON response....
}