spring服务将返回空结果

cnh2zyt3  于 2021-07-14  发布在  Java
关注(0)|答案(0)|浏览(152)

我正在开发一个spring服务,它从db获取数据并返回一个包含对象列表的json。此服务返回特定表中的所有记录。总共大约有10000条记录。
获取数据的方法是快速的(使用线程),但是当服务返回请求的结果时,它是缓慢的。
而且,当json的大小超过700条记录时,我们会得到一个空结果。列表中的每个对象都有大约70个字段。
有没有人知道什么方法可以让spring不用花那么长时间就能返回结果?
spring服务有响应大小限制吗?
给你密码

public String getData(final Pageable pageable) throws Exception {

        final int numberOfThreads = 10;

        final StringBuilder str = new StringBuilder();
        str.append("{" + "\"content\": [");

        // Here we are obtaining all the data in diferents treads and appending in variable String 
         strContent 

        String strContent = getDataByThreads(numberOfThreads);
        // Here strContent contains 10.000 or more objects in JSON format

        logger.info(" -------------- END OF {} THREADS  ----------------- ", numberOfThreads);

        final long totalPages = (totalCount / fetchSize) + 1;
        final boolean last = Math.ceil(totalPages) == pageable.getPageNumber();
        final boolean first = pageable.getPageNumber() == 0;

        // Mounting the response JSON
        str.append(strContent);
        str.append("],");
        str.append("\"last\": " + last + ",");
        str.append("\"totalElements\": " + totalCount + ",");
        str.append("\"totalPages\": " + totalPages + ",");
        str.append("\"first\": " + first + ",");
        str.append("\"numberOfElements\": " + fetchSize + ",");
        str.append("\"size\": " + fetchSize + ",");
        str.append("\"number\": " + pageable.getPageNumber());
        str.append("}");

        // Here is where Spring takes a long time...
        return str.toString();
    }

如您所见,我们以字符串格式返回json,因为对象具有动态字段,并且不是固定的。
谢谢您。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题