Vert.x queryStream似乎挂起约4950行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vert.x queryStream似乎挂起约4950行相关的知识,希望对你有一定的参考价值。

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

答案

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

以上是关于Vert.x queryStream似乎挂起约4950行的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Vert.x (java) 中使用 Jackson 流式传输 JSON 结果

Kotlin Vert.x Postgres pub/sub 不工作

Lil Uzi Vert X TM88 X Southside新单Mood

Vertx和Camel集成

使用 cl 编译的代码在第一次运行时挂起太久[关闭]

Vert.x系列(零),开篇,认识Vert.x并创建一个Http服务