【问题标题】:How to verify that Slick is using parameters from application.conf?如何验证 Slick 是否使用 application.conf 中的参数?
【发布时间】:2016-02-25 21:31:34
【问题描述】:

在application.conf中,设置参数:

  url = "jdbc:mysql://.../table_name"
  user = ...
  password = ...
  driver = "com.mysql.jdbc.Driver"
  connectionPool = HikariCP
  queueSize = 25000

每当队列达到 1000 个项目时,我仍然会收到错误消息,这意味着 queueSize 属性仍然是默认值。

Task scala.slick.backend.DatabaseComponent$DatabaseDef$... 
rejected from java.util.concurrent.ThreadPoolExecutor...
[Running, pool size = 20, 
active threads = 20, 
queued tasks = 1000, 
completed tasks = 7507]

【问题讨论】:

  • 这是一个简单的例子,说明如何从 Typesafe 配置中读取值 - github.com/kevinmeredith/typesafe_config_read_env_var
  • 谢谢你的测试帮助!我使用了 Database.forConfig("", ConfigFactory.load().getConfig("")) 它允许找到 queueSize 变量。

标签: database scala slick hikaricp


【解决方案1】:

不确定为什么它没有提升您的价值,但您可能想尝试不同的配置方式..您没有说明您使用的是什么版本的 Slick。但请参考Slick 3.0.0 documentation。尝试使用TypeSafe Config

在你的application.conf:

database {
  dataSourceClass = "org.postgresql.ds.PGSimpleDataSource" // replace with mysql driver
  properties = {
    databaseName = "mydb"
    user = "myuser"
    password = "secret"
  }
  queueSize = 25000 // I've never changed that property, so not tested.
}

然后在scala中:

val db = Database.forConfig("database")

希望这对你有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    • 2019-08-18
    • 2020-03-23
    • 2016-02-11
    • 2020-10-20
    • 2018-10-28
    相关资源
    最近更新 更多