java - 说服产品经理更改长时间运行的同步流程的设计

标签 java web-applications java-ee-5

在我们的网络应用程序中,我们有一个功能:

  1. 获取产品列表
  2. 将它们写入 excel 文件
  3. 返回excel文件给用户下载

根据产品数量,此过程通常需要 > 2 分钟。有些请求需要超过 5 分钟!用户平均下载 100-500 个产品,请求大约需要 1-5 分钟。

我认为 1 分钟对于任何 web 服务器线程在任何单个请求上都处于 Activity 状态来说太长了。除了需要这么长时间之外,进程本身会导致我们的服务器出现内存不足错误并使其崩溃。

我想说服他们这是不好的做法,因此必须通过引用软件架构师撰写的文章或书籍或研究来改变设计,这些文章或书籍或研究表明这是如此,并提供有关在这种情况下该怎么做的建议。

有人知道这样的书/文章/研究吗?

如果您不同意我的假设,即 1 分钟对于任何 Web 服务器线程在单个请求上都处于 Activity 状态来说太长了,请告诉我原因。

最佳答案

您是否尝试重新考虑生成 xls 的逻辑?因为如果这是一项业务需求,那么他们可能真的不愿意更改(在那里,完成)它。

我已经使用 apache-poi 生成 xls 并创建报告并且性能令人满意(最多几秒钟来制作报告)。我们使用服务器端缓存来缓存数据。然后我们只需要取出 xls。

关于java - 说服产品经理更改长时间运行的同步流程的设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4616234/

相关文章:

javascript - iPhone Web App 禁用缓存

java - 远程调用同一服务器上存在的 EJB 时出现 ClassCastException

java - EJB 和 Web 层

Java - 在浏览时将元素添加到 ArrayList

java - 计算java中字符串中1's,0' s,2的数量

java - 调试 JBoss 100% CPU 使用率

jakarta-ee - 如何在 Netbeans (7.0.1) 中将现有项目从 Java EE5 降级到 J2EE 1.4

java - DatagramPacket 到字符串

java - 使用 Pixelmon mod 1.12.2-6.3.1 在 Eclipse 中运行 Minecraft Forge 服务器/客户端

apache - 将 Web 应用程序从 Jrun 迁移到 Tomcat 服务器