【发布时间】:2015-03-05 22:21:40
【问题描述】:
我正在做一个项目,我们使用 Tomcat 8 作为应用服务器,因此使用 JSP 和 Servlet。每个 JSP 都显示一种项目列表。应用程序的用户可以模拟一个项目。这意味着什么并不重要。当用户点击“模拟”按钮时,将执行以下过程:
- 将通过 Ajax (javascript) 执行一个 servlet,生成一个 zip 文件并将该文件存储在服务器的硬盘上
- 将在数据库中为各个项目设置一个“模拟”标志
- 外部 java 程序(在后端)监听“模拟”标志,如果设置了项目标志,外部程序会抓取 Web 应用程序存储的 zip 文件
- 然后外部 java 程序运行该项目的模拟。
- 模拟完成后,外部java程序在服务器硬盘上存储一个新的zip文件,在数据库中设置一个'嘿,我准备好了'-标志并调用Web应用程序的servlet
- 此 servlet 将新 zip 文件中的数据信息保存到数据库中
- 完成
所以我的问题是:通知 JSP 模拟已完成的最佳方式是什么? JSP 仍然显示该项目处于模拟过程中。我目前的想法如下:
我可以定期向服务器发送一个 Ajax 请求,以检查数据库中是否有“嘿,我准备好了”标志,如果已设置,我可以在 JSP 上显示结果。但我感觉有更聪明的解决方案。
也许我可以使用最后一个 servlet 调用(参见第 5 点)以某种方式通知 JSP 模拟已完成?问题是这个 servlet 不是由客户端调用,而是由外部 java 程序调用。
你有什么建议吗?或者有什么我应该阅读的技术?
谢谢。
【问题讨论】: