Jquery 长时间运行任务的Grails状态更新

Jquery 长时间运行任务的Grails状态更新,jquery,ajax,grails,Jquery,Ajax,Grails,我有一个长时间运行的任务(>1.5分钟),我希望能够使用ajax提供用户的完成状态。 以下是我目前正在做的事情: 我使用ajax处理上传(使用ajax上传插件),并且在任务运行时显示忙碌标签我希望能够显示完成的百分比(不是上载的百分比-我已经提供了更新)。也就是说,在我的excel文件完成上载并开始处理行之后,我希望能够向用户提供状态更新。 以下是我的研究/个人知识带给我的启示: 1.使用线程 2.使用JMS或某种消息传递 3.使用grails事件。(不确定这将如何工作) 有人知道实现这一点的最

我有一个长时间运行的任务(>1.5分钟),我希望能够使用ajax提供用户的完成状态。 以下是我目前正在做的事情: 我使用ajax处理上传(使用ajax上传插件),并且在任务运行时显示忙碌标签我希望能够显示完成的百分比(不是上载的百分比-我已经提供了更新)。也就是说,在我的excel文件完成上载并开始处理行之后,我希望能够向用户提供状态更新。

以下是我的研究/个人知识带给我的启示: 1.使用线程 2.使用JMS或某种消息传递 3.使用grails事件。(不确定这将如何工作)


有人知道实现这一点的最佳方法是什么吗?

当我过去这样做时,我使用了以下方法:

  • 。长时间运行的进程更新某些会话范围的组件(或数据库)中的进度
  • 将用户的浏览器返回到页面,并启动服务器端控制器以获取当前进度
  • 如果您想显示完成百分比,则可以很容易地使用。我们在Grails应用程序中用于长时间运行的任务(=批处理作业)。它是Spring产品系列的一个框架部分,旨在构建批处理作业

    SpringSource/GoPivotal的工作人员在总体架构和提供的模式上确实花了很多心思。如果您的应用程序中有多个批次作业,我会考虑查看它。
    对于特定的进度要求,Spring Batch在运行时提供了类似于
    JobOperator
    JobExplorer
    的组件,可用于查找当前批处理作业状态。如果您愿意的话,有一个单独的起点。

    您知道tomcat7中是否有异步注释吗?是的,@Async注释是由Spring提供的,所以Tomcat版本实际上不在其中。好的。谢谢我会很快尝试一下,然后接受答案。