从HttpServiceClient读取一个巨大的结果集并以块的形式显示它们

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从HttpServiceClient读取一个巨大的结果集并以块的形式显示它们相关的知识,希望对你有一定的参考价值。

我正在编写一个读取大量数据的Java APP:

try {
    //Build the URL
    getMethod = new GetMethod(url);
    SimpleHttpResponseParser parser = new SimpleHttpResponseParser();
    httpServiceClient.getRequest(...); //This takes about 10 minutes
    List<ApiMessage> messages = objectMapper.readValue(parser.getHttpResponse()); //Convert the JSON Response into actual Java Object
    for (ApiMessage m : messages) {
        convertedMessages.add(ApiMessageMapper.map(m)); //Add each message to a more suitable data set to be painted later
    }
    //Return the data and such ...
}

这个请求需要花费太长时间来处理它。我不希望用户等待超过10分钟才能看到结果。

有没有办法按结果集50左右绘制并继续在后台下载剩余数据?

答案

尝试实现分页。通常,服务器允许通过指定offsetlimit返回有限数量的结果。

在第一个电话集

offset=0
limit=50

在接下来的电话

offset=51
limit=50

等等...

另一种方法是使用WebSockets使用服务器推送,但它将是一个更复杂的实现。

以上是关于从HttpServiceClient读取一个巨大的结果集并以块的形式显示它们的主要内容,如果未能解决你的问题,请参考以下文章

使用 AWS Lambda 从 AWS S3 读取和提取巨大的 zip 文件

R读取一个巨大的csv

c_cpp 逐行读取一个巨大的文件

如何通过 javascript 或 jquery 读取巨大的文本文件?

在matlab中保存和读取巨大的结构?

从多个线程读取数组时要注意啥?