Java Web应用程序中的后台进程

时间:2019-05-27 16:06:47

标签: java multithreading servlets jms ejb

我有包含pdf的发票清单。用户可以选择n个发票,然后单击“下载”按钮。立即,我们将显示一个新窗口,显示状态为“待处理”,但在后台应合并所有pdf文件,如果合并结束,则应将状态更改为“可用”。

发送响应后如何在Web应用程序中实现后台处理,以及后台处理完成后如何再次发送响应

1 个答案:

答案 0 :(得分:0)

您的Web UI可以将请求发送到WebServer,后者立即产生一个内部线程并返回待处理状态。在处理WebServer的线程时,您的UI可能再次可用(解锁)。

替代方法1:Web UI可以每5秒左右轮询一次(请参阅HTML5 Web worker),以通过请求/重播检查此处理的状态,并在完成后检索最终结果。

替代2:您可以在WebServer到WebUI之间建立某种形式的“推送通知”,以便在处理完成后让UI知道。那里有几个Push API(根据您的后端/前端语言选择)。有些简单地实现了如上所述的轮询状态检查。其他类似WebSocket的方法则更为通用。不幸的是,目前还没有标准,但我希望它能来:https://www.w3.org/TR/push-api/