Skip to content

Commit a5313e9

Browse files
committed
Added optional configuration parameters, connectTimeout and queryTimeout. Both default to 5 seconds.
1 parent 61253a9 commit a5313e9

3 files changed

Lines changed: 24 additions & 2 deletions

File tree

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ akka-persistence-sql-async {
6363
metadata-table-name = "persistence_metadata"
6464
journal-table-name = "persistence_journal"
6565
snapshot-table-name = "persistence_snapshot"
66+
67+
connect-timeout = 5s
68+
query-timeout = 5s
6669
}
6770
```
6871

core/src/main/scala/akka/persistence/common/SQLAsyncConfig.scala

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
package akka.persistence.common
22

3+
import java.util.concurrent.TimeUnit
4+
35
import akka.actor.ActorSystem
46

7+
import scala.concurrent.duration._
8+
59
private[persistence] class SQLAsyncConfig(val system: ActorSystem) {
610
val rootKey = "akka-persistence-sql-async"
711
val config = system.settings.config.getConfig(rootKey)
@@ -15,6 +19,16 @@ private[persistence] class SQLAsyncConfig(val system: ActorSystem) {
1519
val metadataTableName = config.getString("metadata-table-name")
1620
val journalTableName = config.getString("journal-table-name")
1721
val snapshotTableName = config.getString("snapshot-table-name")
22+
23+
val connectTimeout: Option[Duration] = getOptionalDuration("connect-timeout", 5.seconds)
24+
val queryTimeout: Option[Duration] = getOptionalDuration("query-timeout", 5.seconds)
25+
26+
private def getOptionalDuration(configKey: String, defaultValue: FiniteDuration) = {
27+
if (config.hasPath(configKey))
28+
Option(FiniteDuration(config.getDuration(configKey, TimeUnit.NANOSECONDS), TimeUnit.NANOSECONDS))
29+
else
30+
Option(defaultValue)
31+
}
1832
}
1933

2034
private[persistence] object SQLAsyncConfig {

core/src/main/scala/akka/persistence/common/ScalikeJDBCExtension.scala

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package akka.persistence.common
22

33
import akka.actor.{ExtendedActorSystem, Extension, ExtensionId, ExtensionIdProvider}
4-
import scalikejdbc.async.{AsyncConnectionPool, AsyncConnectionPoolSettings}
4+
import scalikejdbc.async.{AsyncConnectionPool, AsyncConnectionPoolSettings, AsyncConnectionSettings}
55

66
private[persistence] object ScalikeJDBCExtension extends ExtensionId[ScalikeJDBCExtension] with ExtensionIdProvider {
77
override def createExtension(system: ExtendedActorSystem): ScalikeJDBCExtension = {
@@ -24,6 +24,11 @@ private[persistence] class ScalikeJDBCExtension(system: ExtendedActorSystem) ext
2424
password = if (config.password == "") null else config.password,
2525
settings = AsyncConnectionPoolSettings(
2626
maxPoolSize = config.maxPoolSize,
27-
maxQueueSize = config.waitQueueCapacity)
27+
maxQueueSize = config.waitQueueCapacity,
28+
connectionSettings = AsyncConnectionSettings(
29+
connectTimeout = config.connectTimeout,
30+
queryTimeout = config.queryTimeout
31+
)
32+
)
2833
)
2934
}

0 commit comments

Comments
 (0)