在playframework 2.6中配置多个连接池

时间:2017-11-11 06:15:22

标签: scala playframework jdbc-pool

我在这里查看文档:{​​{3}}。您可以定义多个数据库连接:

# Orders database
db.orders.driver=org.h2.Driver
db.orders.url="jdbc:h2:mem:orders"

# Customers database
db.customers.driver=org.h2.Driver
db.customers.url="jdbc:h2:mem:customers"

您可以使用以下代码在代码中引用:

package controllers
import javax.inject.Inject

import play.api.mvc.{BaseController, ControllerComponents}
import play.api.db.{Database, NamedDatabase}

// inject "orders" database instead of "default"
class ScalaInjectNamed @Inject()(
  @NamedDatabase("orders") db: Database,
  val controllerComponents: ControllerComponents
) extends BaseController {
  // do whatever you need with the db
}

但是如何为每个连接自定义连接池?

根据此文档:https://www.playframework.com/documentation/2.6.x/ScalaDatabase#How-to-configure-several-data-sources您可以指定默认配置,数据库等连接池的原型设置等。如何定义每个连接池的设置?也许一个连接池只需要一个连接而另一个需要更多连接。

由于

1 个答案:

答案 0 :(得分:0)

使用数据库设置中的hikaricp设置似乎可以解决问题:

db {
  mentions {
    driver="org.postgresql.Driver"
    url="jdbc:postgresql://localhost:5432/mentions"
    password="***"
    username="play"
    hikaricp {
      maximumPoolSize = 2
      minimumIdle=2
    }

  }

  postgres {
    driver="org.postgresql.Driver"
    url="jdbc:postgresql://localhost:5432/postgres"
    password="***"
    username="postgres"
    hikaricp {
      maximumPoolSize = 9
      minimumIdle=9
    }
  }

}