如何使用 Play 设置 HikariCP 池大小

How to set HikariCP pool size with Play

为 Play w/ 和 w/o Slick 配置 HikariCP 池大小的正确方法是什么?

我用 slick 试过了:

slick.dbs.default.db.minimumIdle=30
slick.dbs.default.db.maximumPoolSize=30

(connectionTestQuery 等其他属性似乎也可以这样工作)

和 w/o Slick 我已经尝试了各种组合:

play.db.default.minimumIdle=30
play.db.default.maximumPoolSize=30

并且:

play.db.default.prototype.hikaricp.minimumIdle=30
play.db.default.prototype.hikaricp.maximumPoolSize=30

我看过 documentation,但似乎没有任何内容。

我认为正确的语法是

play.db.default.hikaricp.minimumIdle=30
play.db.default.hikaricp.maximumPoolSize=30

但是这个does not seem to work with Slick

Furthermore, be aware that any configuration under play.db is not considered by Play Slick.

你可以试试

slick.dbs.default.db.numThreads=30
slick.dbs.default.db.queueSize=30

不要误会,实际上在slick 3.x中,池的大小是由配置中的numThreads值决定的,最小为numThreads,最大为numThreads * 5,池大小的配置值简单不在其 HikariCP 包装器中使用。

SBT 依赖 HikariCP 连接池

// https://mvnrepository.com/artifact/com.zaxxer/HikariCP
libraryDependencies += "com.zaxxer" % "HikariCP" % "2.3.2"

将 HikariDatasource 与 imports 一起使用,并使用 hikari 配置的 setMaximumPoolSize() 方法,如下所示

import com.zaxxer.hikari.HikariDataSource
import com.zaxxer.hikari.HikariConfig

var datasource: HikariDataSource = null


 var hc: HikariConfig = new HikariConfig();
    hc.setMinimumIdle(--- anything ,depends)
    hc.setMaximumPoolSize(300 or anything)

-- 设置其他需要的属性,如jdbc url,用户名,密码,数据库名等

将 hikari 配置对象设置为 hikari 数据源

 var ds: HikariDataSource = new HikariDataSource(hc);
    datasource = ds

并使用数据源。