在我们的网络应用程序中,我们有一个功能:
- 获取产品列表
- 将它们写入 excel 文件
- 返回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/