我正在Grails 2.X中编写一个控制器,开始了一项长期的工作。我希望能够在网页上呈现一些内容,该内容表明该进程已启动,正在进行的作业的ID,并且该响应实际显示在用户的Web浏览器中,然后继续处理这份工作。
我尝试过只使用渲染而不返回,用户的浏览器只是挂起,直到整个作业完成,然后呈现作业开始。
我尝试重定向到呈现我的邮件的其他操作,但这也会挂起浏览器,直到作业完成。
我已经研究过使用过滤器和afterInterceptor,但最好我可以告诉它们生效并在最终页面发送回客户端之前进行处理。我需要将最后一页发送回我的客户端,然后继续处理。
答案 0 :(得分:1)
您将要开始后台工作。您可以使用quartz或查看grails 2.3异步项。如果使用Quartz很长时间可能是你最好的选择。
您需要返回客户端可用于查询作业状态的内容,例如作业ID或处理完成后更新的某些记录。