Vert.x queryStream似乎挂起约4950行

问题描述 投票:0回答:1

我正在使用Vertx 3解决一个奇怪的问题。我已经为HTTP路由创建了一个请求处理程序,它查询PostgreSQL数据库。这一切都是非常标准的,它可以工作,直到行数超过4950.这是尽管使用queryStream,它应该扩展。

我简化了下面的代码来说明问题:

dbClient.getConnection(res -> {
                if (res.failed()) {
                    event.fail(500);
                    return;
                }

                try (final SQLConnection conn = res.result()) {
                    conn.queryStream("select x, y, z from large_table", stream -> {
                        if (stream.succeeded()) {
                            final SQLRowStream rowStream = stream.result();

                            rowStream.handler(row -> {
                               // Do something with row here, but leaving it empty now
                            }).endHandler(endHandler -> {
                                response.end();
                            });
                        }
                    });
                }

我该如何解决此问题?当我在psql中运行查询或在Java SE中使用常规JDBC时,它没有任何问题。

如果我在查询中附加“LIMIT 4000”,它可以正常工作。

或者我误解了Vertx的JDBC支持,因为我需要执行此操作作为阻止代码,因为它需要这么长时间?

java postgresql jdbc vert.x
1个回答
0
投票

似乎升级到vert.x 3.5.2解决了这个问题。我不确定实际根本原因是什么。

© www.soinside.com 2019 - 2024. All rights reserved.