我想在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.SqlConnection
从 rxGetConnection
获得
关于java - 使用 Vert.x vertx-pg-client 从池中获取 PgConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60240656/