【发布时间】:2015-08-08 02:59:03
【问题描述】:
我有几个要在我的 servlet 中执行的进程(调用 3rd 方服务并获取响应、查询数据库并获取结果、执行一些 IO 操作等)。此外,这些进程非常耗时,如果第一个进程的第 3 方调用响应失败,则其余进程也应终止。
我将使用 Executor 将所有这些进程作为多线程运行。尽快,第一个进程的响应可用,servlet 应该发送响应(重定向到页面)。当所有进程的其余部分完成后,输出应该再次发送到页面(类似于推送到浏览器),或重定向到另一个页面,(但随后想要访问已经运行的其余线程。
我的第一次尝试是从浏览器发送 ajax 请求并处理所有这些进程。但它的安全性较低。所以,让我知道一种运行这些线程的方法,一旦第一个进程完成,发送响应,然后返回其余的输出。
【问题讨论】:
-
不能推送到浏览器,必须从浏览器拉取
-
@NitinDandriyal 好吧,您可以使用 WebSockets 或 SSE(服务器发送事件)推送到客户端...
-
你的应用是 HTML5 并且支持 websockets 吗?
-
@aksappy。感谢您的回复。我必须支持旧的 IE 版本,我不能使用 HTML 5。
-
但是,像您这样的需求正是发明 ajax 和 websockets 的原因
标签: java multithreading jakarta-ee servlets