java - Java AsyncContext 启动 Runnable
问题描述
我创建了一个 Java servlet,它执行以下操作:
final AsyncContext aContext = request.startAsync();
aContext.start(new Runnable() {
public void run() {
HttpServletResponse response = (HttpServletResponse) aContext.getResponse();
try {
performRequest(proxyRequest, response);
} catch (IOException e) {
LOGGER.debug("IO Exception: " + e.getLocalizedMessage());
} catch (ServletException e) {
jsonResponse.append("ERROR", "Servlet Exception: " + e.getLocalizedMessage());
}
aContext.complete();
responseWriter.print(jsonResponse);
}
});
此 servlet 由前端 UI 调用,该 UI 执行 AJAX 调用并传递一些巨大的数据集。java servlet 运行方法 performRequest,这可能需要几分钟(在巨大的数据集上)。我希望 servlet 快速返回(立即触发异步进程),否则 AJAX 承诺会在等待 30 秒后失败。我能做些什么?
解决方案
推荐阅读
- java - 将 Bash 字符串转换为 JavaString
- mysql - 显示来自多个表的列
- javascript - SocketIO:有没有办法在每条消息中发送一个令牌?
- javascript - 在 cloud firestore 中是否可以从同一个集合中查询多个文档?
- javascript - 按索引过滤对象数组
- arrays - 使用数组的简单条形图挑战
- angular - 关闭从另一个组件打开的 ngx-modal
- javascript - NATIVESCRIPT - Core(JS) - 想要在登录页面上隐藏 TabView
- docker - docker的添加指令不在windows机器上运行
- spring - Webflux - jaxb 会影响反应式应用程序的性能吗?