Получение PgConnection из пула с Vert.x vertx-pg-client - PullRequest
0 голосов
/ 15 февраля 2020

Я хочу выполнить дорогой запрос на postgresql (время выполнения около 7-60 секунд), иногда результаты не нужны после запуска запроса, и поэтому я хотел бы отменить его. Я хочу использовать библиотеки vert.x для этого. Я смотрел на использование io.vertx.reactivex.pgclient.PgConnection, поскольку оно поддерживает отмену запроса. Однако, похоже, нет способа получить PgConnection из пула. Другой вариант - использовать io.vertx.reactivex.sqlclient.SqlConnection, возвращаемый из PgPool, но это не поддерживает отмену запроса. Таким образом, мой вопрос заключается в том, как я могу отменить запрос для пула соединений?

1 Ответ

0 голосов
/ 18 февраля 2020
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

...