我有一个 servlet,用于从许多第三方 REST 数据点获取数据,集成所有数据并以 HTML 格式报告数据。我还有一个过滤器,它具有以下流程 -
- 当请求命中过滤器时创建事件记录,并将 eventrecord 对象添加到请求中
- 执行 chain.doFilter - 允许 servlet 向事件记录添加更多详细信息
- 在返回浏览器的路上,filter 获取 eventrecord 对象并记录它。
现在,如果我使用 Asynchronous servlet using AsyncContext context = request.getAsyncContext();
,它将与相同的 REST 数据点通信,但是当数据准备好时,它将写入响应流而不是等待所有 REST 数据点响应,我将如何重新编写我的过滤器? 它是否会附加到负责从 REST 数据点刷新数据的线程,以便在处理和刷新所有数据后,它将记录事件记录?是否有任何通用模式可供我研究以了解如何使用 Servlet 3.0 的异步 servlet 处理此类用例?我正在使用 JDK 6.0、Tomcat 7.0。