如何使用Play设置HikariCP池大小

时间:2015-12-15 17:40:12

标签: playframework slick hikaricp

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

我用光滑的方式试过这个:

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

(其他属性,如connectionTestQuery似乎以这种方式工作)

没有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了,但似乎没有什么可以坚持下去。

3 个答案:

答案 0 :(得分:3)

我认为正确的语法是

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

但是does not seem to work with Slick

  

此外,请注意Play Slick不考虑play.db下的任何配置。

您可以尝试类似

的内容
slick.dbs.default.db.numThreads=30
slick.dbs.default.db.queueSize=30

答案 1 :(得分:3)

不要采取错误的方式,实际上在光滑的3.x中,池大小由配置中的numThreads值决定,最小大小为numThreads,最大大小为numThreads * 5,配置值池大小简单,不能在其HikariCP包装器上使用。

答案 2 :(得分:1)

SBT依赖HikariCP连接池

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

将HikariDatasource与import一起使用,并使用hikari config的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

并使用数据源。