reactJS / Axios并使用Streams处理较长的响应时间?

时间:2018-11-29 11:04:13

标签: java reactjs rest spring-boot axios

我有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));
}

我理解这是一个广泛的问题,但是了解执行此操作的方式或技术将对我所做的一切都非常有益:)

谢谢!

1 个答案:

答案 0 :(得分:0)

苏终于得到了我的答案。

使用名为 DeferredResult

的Java类找到了我的答案

我不确定为什么,但是您似乎无法获得任何问题的答案 比基本知识和显而易见的东西更难...

这是我经过几天研究后回答的第n个问题。