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

Background process in web application in java

我有发票清单,其中包含 pdf 文件。用户可以 select n 张发票并单击下载按钮。我们将立即显示新的 window,显示状态为待定,但在后台应合并所有 pdf,如果合并结束,状态应更改为可用。

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

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

备选方案 1:Web UI 可以每 5 秒左右轮询一次(参见 HTML5 web worker)以检查 request/replay 处理的状态并检索完成后的最终结果。

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