1

我正在用 Grails 2.X 编写一个控制器,它开始了一项漫长的工作。我希望能够向网页呈现一些内容,表明进程已开始,并带有正在进行的作业的 id,并让该响应实际显示在用户的网络浏览器中,然后继续处理工作。

我试过只使用渲染而不返回,用户的浏览器只是挂起,直到整个作业完成,然后渲染作业开始。

我尝试重定向到呈现我的消息的不同操作,但这也会挂起浏览器,直到作业完成。

我已经研究过使用过滤器和 afterInterceptor,但尽我所能告诉它们在最终页面发送回客户端之前生效并进行处理。我需要将我的最后一页发回给我的客户,然后继续处理。

4

1 回答 1

1

你会想要开始一个后台工作。您可以使用石英或查看 grails 2.3 异步项。如果时间很长,使用 Quartz 可能是您的最佳选择。

您将希望返回客户端可用于查询作业状态的内容,例如作业 ID 或处理完成后更新的某些记录。

于 2013-11-07T19:12:24.610 回答