Skip to content

Commit 4e8326c

Browse files
committed
[FIX] Fix dispatcher for cachedFlow
1 parent b2b0736 commit 4e8326c

4 files changed

Lines changed: 11 additions & 5 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ klibs.java.ktarget=21
1313
# Project
1414
klibs.project.name=MessageBridge
1515
klibs.project.group=ru.astrainteractive.messagebridge
16-
klibs.project.version.string=0.22.1
16+
klibs.project.version.string=0.22.2
1717
klibs.project.description=Bridge for TG and Discord
1818
klibs.project.developers=makeevrserg|Makeev Roman|makeevrserg@gmail.com
1919
klibs.project.url=https://empireprojekt.ru

modules/link/src/main/kotlin/ru/astrainteractive/messagebridge/link/database/di/LinkDatabaseModule.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import org.jetbrains.exposed.v1.jdbc.transactions.TransactionManager
1212
import org.jetbrains.exposed.v1.jdbc.transactions.transaction
1313
import ru.astrainteractive.astralibs.lifecycle.Lifecycle
1414
import ru.astrainteractive.klibs.mikro.core.coroutines.mapCached
15+
import ru.astrainteractive.klibs.mikro.core.dispatchers.KotlinDispatchers
1516
import ru.astrainteractive.klibs.mikro.exposed.model.DatabaseConfiguration
1617
import ru.astrainteractive.klibs.mikro.exposed.util.connect
1718
import ru.astrainteractive.messagebridge.link.database.table.LinkedPlayerTable
@@ -23,11 +24,12 @@ interface LinkDatabaseModule {
2324

2425
class Default(
2526
ioScope: CoroutineScope,
26-
dataFolder: File
27+
dataFolder: File,
28+
dispatchers: KotlinDispatchers
2729
) : LinkDatabaseModule {
2830
override val databaseFlow: Flow<Database> = flowOf(
2931
value = DatabaseConfiguration.H2(dataFolder.resolve("linking").absolutePath)
30-
).mapCached(ioScope) { dbConfig, previous ->
32+
).mapCached(ioScope, dispatcher = dispatchers.IO) { dbConfig, previous ->
3133
previous?.connector?.invoke()?.close()
3234
previous?.run(TransactionManager::closeAndUnregister)
3335
val database = dbConfig.connect()

modules/link/src/main/kotlin/ru/astrainteractive/messagebridge/link/di/LinkModule.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ interface LinkModule {
2929

3030
private val linkDatabaseModule = LinkDatabaseModule.Default(
3131
ioScope = coreModule.ioScope,
32-
dataFolder = coreModule.dataFolder
32+
dataFolder = coreModule.dataFolder,
33+
dispatchers = coreModule.dispatchers
3334
)
3435

3536
override val linkingDao: LinkingDao = LinkingDaoImpl(linkDatabaseModule.databaseFlow)

modules/messenger/discord/src/main/kotlin/ru/astrainteractive/messagebridge/messenger/discord/di/JdaMessengerModule.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,10 @@ class JdaMessengerModule(
9393

9494
private val webhookClient = jdaFlow
9595
.filterNotNull()
96-
.mapCached<JDA, WebhookClient>(coreModule.ioScope) { jda, old ->
96+
.mapCached<JDA, WebhookClient>(
97+
coreModule.ioScope,
98+
dispatcher = coreModule.dispatchers.IO
99+
) { jda, old ->
97100
old?.close()
98101
val channel = coreModule.configKrate.cachedValue.jdaConfig.channelId
99102
WebHookClientFactory(jda).create(channel).first()

0 commit comments

Comments
 (0)