我有Java spring-boot后端,其中包含一些数据端点。
其中之一是POST
,使用axios的参数很少。
这里的问题是请求需要很长时间才能完全完成并从服务器端发送。需要剖析POST
,并在应用程序内部转发参数,然后计算响应。
我返回List<Object>
(需要事先排序)
列表的第一部分将在几秒钟内准备好,但是要获取整个列表需要几分钟甚至几十分钟的时间,具体取决于发送的参数。
所以第一个问题是Axios抛出network error
,我认为这是因为响应时间很长。 (使用较短的查询时,它消失了)
第二个问题是,除了开发人员之外,其他任何人都对应用程序无反应。
是否有一种方法可以使用某种Java Stream解决方案在等待响应的其余部分时发送响应的第一部分? 还是某种分页解决方案?
我已经进行了一段时间的糊涂,但是还没有找到解决这个问题的任何好的方法。
这里是控制器的一部分,仅供参考:
@RequestMapping(value = "/contracts", method = RequestMethod.POST)
public String Contracts(@RequestBody String req) throws JsonProcessingException {
//omitting parse JSON params from req string
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper.writeValueAsString(DateRange.getDataForDateRange(param1, param2, param3));
}
我理解这是一个广泛的问题,但是了解执行此操作的方式或技术将对我所做的一切都非常有益:)
谢谢!
答案 0 :(得分:0)
苏终于得到了我的答案。
使用名为 DeferredResult
的Java类找到了我的答案我不确定为什么,但是您似乎无法获得任何问题的答案 比基本知识和显而易见的东西更难...
这是我经过几天研究后回答的第n个问题。