Java从一个请求中播放两个响应

时间:2016-06-28 08:06:33

标签: java playframework request response

我要求更新服务器中的数据。

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

我想这样做:

  1. 发送请求从客户端更新
  2. 在服务器中获取请求并启动新线程进行计算,然后更新数据库中的对象并向客户端返回更新完成的响应。
  3. 当计算结束时 - 向客户发送另一个回复,通知他计算结束。
  4. 这样我们就有2个发送给客户端的更新信息。

1 个答案:

答案 0 :(得分:0)

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

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

(没有背景,很难说好名字)

然后在控制器

中定义其中的每个功能
  1. doHeavyCalculation:异步调用您的计算服务
  2. updateTheDatabase:异步发送数据库更新
  3. 完成此操作后,您可以在模板中调用API,并使用2个响应separately(我使用AJAX JavaScript)来更新信息消息。

    我在Scala上使用PlayFramework,很抱歉,如果我无法处理大量代码,但我遇到了类似于你的问题。

    这是the documentation for Asynchronous requests

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