Vert.x queryStream似乎挂起约4950行

时间:2018-02-08 14:11:40

标签: java postgresql jdbc vert.x

我正在使用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支持,因为我需要执行此操作作为阻止代码,因为它花了这么长时间?

1 个答案:

答案 0 :(得分:0)

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