В jasync-sql каждый Connection
может обрабатывать только одно выполнение оператора за раз.Для нескольких соединений лучший подход - использовать ConnectionPool
, например, так:
PoolConfiguration poolConfiguration = new PoolConfiguration(
100, // maxObjects
TimeUnit.MINUTES.toMillis(15), // maxIdle
10_000, // maxQueueSize
TimeUnit.SECONDS.toMillis(30) // validationInterval
);
Connection connectionPool = new ConnectionPool<>(
new PostgreSQLConnectionFactory (configuration), poolConfiguration);
Connection
само по себе не имеет буфера или очереди для ожидающих запросов, поэтому, если вы не хотите создавать соединение для запроса, которыйнеэффективно, следует использовать пул соединений.
Полный пример Kotlin можно найти здесь: https://github.com/jasync-sql/jasync-sql/blob/master/samples/ktor/src/application.kt