0

我想实现以下目标,但我找不到解决它的正确方法。我的webapp, 在某些时候使用户能够按 abuttonexecute远程 a command(实际上执行 a maven build: mvn clean package)。我想要的是jsp使用控制台输出自动更新页面mvn command,就像我们执行build. 我不希望用户等到整个命令输出可用,即命令已经完成,而是逐步渲染输出(例如每秒渲染一些输出行或类似的东西)。我正在使用Spring/Spring MVC,但如果有人必须提出一个没有它的解决方案,那很好。

我的第一个想法是在单独thread的命令行中生成job并将用户sessionidthreadid正在执行命令的用户相关联,但我实际上不知道从这一点开始最好如何进行,或者即使这是一个正确的解决方案.

有没有人做过类似的事情?有没有standard办法实现这样的功能?

谢谢

4

1 回答 1

0

我会设计这样的东西。

Upon Click
    Generate ID
    Start Thread for executing the Task

Thread
    Create an entry for this ID in a global Map
    Start Process
    Watch OutputStream from the Process forked for executing the build
    Buffer to accumulate X lines
    Re-Set the X lines of String as Value for that ID in Map

Auto-Refresh with ID from your Page
    Check for the String and Update Page

也许,您可以在 Map 中获得更多详细信息,例如 Job 是否正在进行、失败或已完成,以便于管理。

于 2013-02-11T10:03:25.407 回答