【问题标题】:Background process in web application in javaJava中Web应用程序中的后台进程
【发布时间】:2019-10-13 05:21:28
【问题描述】:

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

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

【问题讨论】:

  • 我认为你需要异步java编程。您可以为此使用 CompletableFuture 在第二个线程上运行您的任务

标签: java multithreading servlets jms ejb


【解决方案1】:

您的 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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多