gpt4 book ai didi

java - 使用现有 EJB 服务从 Tapestry 执行长时间运行的任务

转载 作者:行者123 更新时间:2023-12-01 12:26:42 24 4
gpt4 key购买 nike

我有以下情况。

我的网站是用 Tapestry 编写的。在其中一个页面上,我需要生成一个相当大的 Excel 或 PDF 文档(大约 20 MB)。现在,由于整个过程需要时间,我要求我的用户稍等一下。

但是,当我尝试测试上限时,我注意到我的整个应用程序(不仅仅是 Web 部分)卡住了,因为生成耗尽了所有资源,并且网站和应用程序的其余部分变得无响应。

这是我迄今为止所做的流程。

  1. 用户单击按钮来请求页面上的文件
  2. 正在从数据库中获取数据(这部分非常快)
  3. 数据被传递到 Tapestry 服务,由 Tapestry 服务进行准备(没什么花哨,也很快)
  4. 准备好的数据被发送到 EJB 服务,该服务创建并部署一个创建 excel/pdf 文件的访问者
  5. 所创建文件的 InputStream 会一直传递到 Tapestry,Tapestry 将其包装在 StreamResponse 中并提供下载

处理这个问题的适当方法是什么?

我是否可以以这样的方式从我的某些 Tapestry 服务中使用 Tapestry 的 ParallelExecutor

Future<InputStream> future = executor.invoke(new Invokable<InputStream>() { ... });

我的主要目标是应用程序和网站保持运行,不会卡住。

提前谢谢您。

最佳答案

看看progresslink demo从 Tapestry 针迹。它可能会给您一些灵感来轮询 Tapestry 中的长时间运行/异步任务。

关于java - 使用现有 EJB 服务从 Tapestry 执行长时间运行的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26275401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com