Настройте несколько пулов соединений в playframework 2.6.

Я просматривал документацию здесь: https://www.playframework.com/documentation/2.6.x/ScalaDatabase#How-to-configure-several-data-sources. Вы можете определить несколько подключений к базе данных:

# 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/SettingsJDBC вы можете указать конфигурацию по умолчанию, базу данных и т. д., параметры прототипа для пула соединений и т. д. Как определить настройки для каждого пула соединений? Возможно, одному пулу соединений требуется только одно соединение, а другому — больше.

Спасибо


person costa    schedule 11.11.2017    source источник


Ответы (1)


Использование настроек 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
    }
  }

}
person costa    schedule 12.11.2017