class MyController {
def startTwoMinuteTask = {
response.contentType = 'text/html'
def out = response.outputStream.destination
out.println 'Starting ...'
out.flush()
for (int i=0;i<10;i++) {
out.println " <br> $i"
out.flush()
Thread.sleep(1000)
}
return null
}
}
最佳答案
我知道这不是您问题的实际答案,但是为什么不使用后台线程?
使用Quartz plugin之类的东西将使您摆脱长时间运行的过程。您可以让浏览器定期轮询更改(或如果可以的话,使用Atmosphere之类的功能进行推送)。
这样做的好处是您不会锁定打开连接。此外,并非所有浏览器都会等待那么长时间-有时它们会超时。 HTTP并不是真正的长期运行连接,尤其是在没有信息传递的情况下。
https://stackoverflow.com/questions/9843126/