diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/configuration/KomgaProperties.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/configuration/KomgaProperties.kt index 96431fb10..03abfae36 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/configuration/KomgaProperties.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/configuration/KomgaProperties.kt @@ -70,6 +70,9 @@ class KomgaProperties { @get:Positive var batchChunkSize: Int = 1000 + + @get:Positive + var maxPoolSize: Int = 8 } class Lucene { diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/datasource/DataSourcesConfiguration.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/datasource/DataSourcesConfiguration.kt index 1f8207712..72d050785 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/datasource/DataSourcesConfiguration.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/datasource/DataSourcesConfiguration.kt @@ -24,11 +24,15 @@ class DataSourcesConfiguration( .type(SqliteUdfDataSource::class.java) .build() + val poolSize = + if (komgaProperties.database.file.contains(":memory:")) 1 + else Runtime.getRuntime().availableProcessors().coerceAtMost(komgaProperties.database.maxPoolSize) + return HikariDataSource( HikariConfig().apply { dataSource = sqliteUdfDataSource poolName = "SqliteUdfPool" - maximumPoolSize = 1 + maximumPoolSize = poolSize }, ) }