java - 3.0之前版本的异步Servlet的解决方案?

标签 java servlets asynchronous

我有一个长时间运行的任务(报告),它在开始返回数据之前会超过任何 TCP 连接超时。异步 servlet(在 Servlet 3.0 中引入)正是我所需要的,但是我仅限于 Servlet v2.4。 有没有“自己动手”的解决方案?我正在做的事情感觉被黑客攻击了——我在线程中异步启动任务,然后立即返回客户端。然后,客户端每隔几秒轮询一次(使用 ajax),并检查该任务 ID 的“就绪”状态(静态列表维护其状态以及线程处理的对象的一些句柄)。准备就绪后,我将输出流注入(inject)到工作对象中,以便线程可以将结果写回客户端。

最佳答案

您可以实现反向 ajax 技术,这意味着您无需多次轮询来获取响应,而是在任务完成后即可获取响应。 有一个快速解决方案可以使用DWR here来实现反向ajax技术。 。但您应该保持静态列表的使用。如果您的后台任务业务逻辑很复杂,您可以使用 ESB 或更复杂的东西。

关于java - 3.0之前版本的异步Servlet的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10900351/

相关文章:

java - 列出当前组配置并更新配置

java - 未从 GWT Web 应用程序中找到 Servlet

tomcat - 手动或通过 Eclipse Juno 创建 Servlet 项目有什么区别吗?

Java - 使用 Apache Http 客户端发布 GZIP 文件

javascript - 无法通过回调返回异步值

java - 如何在java正则表达式中对两个字符进行分组?

Linux/X11下的Java keyPress/keyRelease问题

javascript - 如何使用嵌套promise调用函数并获取值

java - 为什么myeclipse控制台没有输出?

Python Asyncio 阻塞协程