Java 播放一个请求的两个响应
Java play two responses from one request
我有更新服务器数据的请求。
当我更新数据时,我需要运行一个非常繁重的计算,需要 10-30 秒。
我想这样做:
- 从客户端发送更新请求
- 在服务器中获取请求并启动一个新线程进行计算,然后更新我的数据库中的对象和return对客户端的响应更新完成。
- 计算结束时 - 向客户端发送另一个响应,通知他计算结束。
这样我们就有 2 条更新信息发送给了客户端。
在您的路线中,您应该有 2 个条目:
- 一个更新数据库的路由(我们称之为 Controller.updateTheDatabase())
- 一个进行繁重计算的路线(让我们称之为
Controller.doHeavyCalculation())
(没有上下文很难起出好名字)
然后您在 Controller,
中定义每一个函数
- doHeavyCalculation:异步调用您的计算服务
- updateTheDatabase:异步发送数据库更新
一旦有了这个,就可以在模板中调用 API,然后使用 2 个响应 separately
(我使用 AJAX JavaScript)更新信息消息。
我在 Scala 中使用 PlayFramework 很抱歉,如果我无法帮助处理大量代码,但我 运行 遇到了与您类似的问题。
这里是the documentation for Asynchronous requests
编辑:再次阅读问题后我改变了方法
我有更新服务器数据的请求。
当我更新数据时,我需要运行一个非常繁重的计算,需要 10-30 秒。
我想这样做:
- 从客户端发送更新请求
- 在服务器中获取请求并启动一个新线程进行计算,然后更新我的数据库中的对象和return对客户端的响应更新完成。
- 计算结束时 - 向客户端发送另一个响应,通知他计算结束。
这样我们就有 2 条更新信息发送给了客户端。
在您的路线中,您应该有 2 个条目:
- 一个更新数据库的路由(我们称之为 Controller.updateTheDatabase())
- 一个进行繁重计算的路线(让我们称之为 Controller.doHeavyCalculation())
(没有上下文很难起出好名字)
然后您在 Controller,
中定义每一个函数- doHeavyCalculation:异步调用您的计算服务
- updateTheDatabase:异步发送数据库更新
一旦有了这个,就可以在模板中调用 API,然后使用 2 个响应 separately
(我使用 AJAX JavaScript)更新信息消息。
我在 Scala 中使用 PlayFramework 很抱歉,如果我无法帮助处理大量代码,但我 运行 遇到了与您类似的问题。
这里是the documentation for Asynchronous requests
编辑:再次阅读问题后我改变了方法