Java 播放一个请求的两个响应

Java play two responses from one request

我有更新服务器数据的请求。

当我更新数据时,我需要运行一个非常繁重的计算,需要 10-30 秒。

我想这样做:

  1. 从客户端发送更新请求
  2. 在服务器中获取请求并启动一个新线程进行计算,然后更新我的数据库中的对象和return对客户端的响应更新完成。
  3. 计算结束时 - 向客户端发送另一个响应,通知他计算结束。

这样我们就有 2 条更新信息发送给了客户端。

在您的路线中,您应该有 2 个条目:

  • 一个更新数据库的路由(我们称之为 Controller.updateTheDatabase())
  • 一个进行繁重计算的路线(让我们称之为 Controller.doHeavyCalculation())

(没有上下文很难起出好名字)

然后您在 Controller,

中定义每一个函数
  1. doHeavyCalculation:异步调用您的计算服务
  2. updateTheDatabase:异步发送数据库更新

一旦有了这个,就可以在模板中调用 API,然后使用 2 个响应 separately(我使用 AJAX JavaScript)更新信息消息。

我在 Scala 中使用 PlayFramework 很抱歉,如果我无法帮助处理大量代码,但我 运行 遇到了与您类似的问题。

这里是the documentation for Asynchronous requests

编辑:再次阅读问题后我改变了方法