我想实现以下目标但我无法找到解决问题的正确方法。我的webapp
在某些时候让用户能够远程按button
和execute
command
{实际执行maven build
:{{1} })。我想要的是使用mvn clean package
的控制台输出自动更新jsp
页面,这是Jenkins在执行mvn command
时所做的事情。我不希望用户等到整个命令输出可用,即命令已经完成,但逐步渲染输出(例如,每秒渲染一些输出行或类似的东西)。我正在使用build
,但如果有人不得不提出一个没有它的解决方案,那就没问题了。
我的第一个是在单独的Spring/Spring MVC
命令行thread
中生成,并将用户的job
与正在执行命令的sessionid
相关联,但我不知道实际上知道如何从这一点开始,或者即使这是一个正确的解决方案。
有人做过类似的事吗?是否有threadid
方法来实现这样的功能?
由于
答案 0 :(得分: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
也许,您可以在地图中获取更多详细信息,例如作业是否正在进行,失败或已完成,以便于管理。