首页 > 解决方案 > Java中Web应用程序中的后台进程

问题描述

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

发送响应后如何在Web应用程序中实现后台进程并在后台进程完成后再次发送响应

标签: javamultithreadingservletsjmsejb

解决方案


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

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

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


推荐阅读