有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Jersey流化大数据集的输出

final StreamingOutput stream = new StreamingOutput() {
  @Override
  public void write(final OutputStream out) {
  dao.getData(
    query,
    new SdmxObserver(writerFactory.getDataWriter(sdmxFormat, out, properties), request
        .getRemoteAddr(), request.getHeader("User-Agent"), query.toString(), sdmxFormat
        .toString(), query.getlist()));
  }
};
res = Response.ok(stream, MediaType.valueOf("application/vnd.sdmx.genericdata+xml;version=2.1"))
            .cacheControl(cc).lastModified(lastModified).header("Vary", "Accept,Accept-Encoding").build();
return res;

检索数据的数据库调用需要很长时间,因为数据量很大,因此在将数据下载到浏览器之前需要很长时间,用户认为无法访问服务器。我们如何在同一个web服务响应中使用多个数据库查询来发送数据块,以便在下一个查询从数据库获取数据时快速开始下载并不断添加响应


共 (1) 个答案

  1. # 1 楼答案

    将响应内容分页到最多X条记录的页面中。这将允许API一次检索一页一页的结果

    http://localhost/api/v1/resource?page=1&size=20
    http://localhost/api/v1/resource?page=2&size=20
    http://localhost/api/v1/resource?page=3&size=20
    ...
    

    定义API时,可以查看Spring数据中定义的^{}^{}