java - 使用 Vert.x vertx-pg-client 从池中获取 PgConnection

标签 java postgresql jdbc vert.x

我想在postgresql上执行一个昂贵的查询(运行时间大约7-60秒),有时查询开始后不需要结果,所以我想取消它。我想使用 vert.x 库来做到这一点。我研究过使用 io.vertx.reactivex.pgclient.PgConnection ,因为它支持取消查询。然而,似乎没有办法从池源获取 PgConnection 。另一种选择是使用从 PgPool 返回的 io.vertx.reactivex.sqlclient.SqlConnection 但这不支持取消查询。因此我的问题是如何取消池连接上的查询?

最佳答案

pgPool.rxGetConnection().flatMap(
    conn -> {
      PgConnection pgconn = new PgConnection((io.vertx.pgclient.PgConnection)conn.getDelegate());
      ...
      return Single.just(conn);
    }
).subscribe(conn -> conn.close());

做类似上面的事情会给你一个io.vertx.reactivex.pgclient.PgConnection来自io.vertx.reactivex.sqlclient.SqlConnectionrxGetConnection 获得

关于java - 使用 Vert.x vertx-pg-client 从池中获取 PgConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60240656/

相关文章:

java - jSecurity JDBCRealm SQL 设置

来自 SELECT WHERE 的 SQL 多条更新记录

Postgresql 函数返回受影响的行数

java - 如何使用 Spring JDBC 的 MERGE 语句插入/更新单个记录

java - 仅使用 xml 的带圆角的 ImageButton?

c++ - Qt 中 PostgreSQL 和 MySQL 的优缺点?

java - 准备好的语句会明显减慢程序速度吗?

java - 对 http ://repo1. maven.org/maven2/的请求返回 501 HTTPS 必需状态和正文

java - 无法将带有 session 的请求转发到 JSP 页面

java - 如何在 Android 中处理长按