grails - 可以让 Controller 两次将文本值呈现给客户端

标签 grails grails-controller grails-2.3 grails-2.4 grails-2.5

在我的应用程序中,浏览器的http请求排队。

在对服务器的http请求上,服务器应通知客户端该请求已被接受(例如,http状态为202或仅显示一条消息“In Progress”),以便客户端队列可以将第二个请求发送到服务器。

一旦第一个请求完全执行,服务器应再次通知客户端说请求成功(例如,http状态为200)。

使用 promise 并没有帮助,因为不可能进行两次渲染。一个具有实际的请求-响应,另一个具有线程完成工作的能力。

虽然我知道一个请求和多个响应是不可能的。但是,是否有一种方法可以将一个请求的文本至少渲染两次?

最佳答案

一种解决方案是将其作为多步骤过程进行。

因此,假设我们使用Rabbit MQ作为消息传递队列。让我们按照以下步骤操作:

  • 队列向处理某些资源的服务器发送了一个请求。
  • Server接受了请求并开始处理它,并发送了返回代码202 /处理中的消息。此外,它确实向Rabbit mq发送了一条消息来处理请求,同时将消息代码发送给客户端。
  • 另一个消息被消耗并且处理完成,并将消息200推送到带有某些标识号的成功队列,以标识来自客户端(例如客户端)的请求。客户编号,缸编号而不是直接将消息状态放入数据库中,而是使用客户端的另一个调用来检查消息状态是否已更新为预期状态,而不是推送。
  • Client现在可以通过检查队列或数据库来轻松检查其请求的状态。

  • 您也可以在服务器端使用ajax请求来跟踪某些过程是否完成。

    希望能帮助到你。

    关于grails - 可以让 Controller 两次将文本值呈现给客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33378008/

    相关文章:

    grails - Grails命令对象未通过验证

    grails - Grails Controller 名称中可以有数字吗

    grails - 使用属性映射未设置属性的新的Domain对象

    Grails plugin.xml - 存储在版本控制中?

    grails - session 固定-访问 session 中的值时出错

    grails - GSP:检查模型(变量)是否为空不工作

    function - Grails域功能不起作用

    grails - remoteFunction 调用不工作 grails

    Grails 2.3.9 - 错误 : ClassNotFoundException: grails.plugin.spock.test.GrailsS​​pecTestType

    grails - 为什么使用与配置的 SpringBean 名称相同的操作名称会导致 ClassCastException?